Qt子窗口放置

时间:2020-03-05 18:43:56  来源:igfitidea点击:

有没有办法在Qt中指定孩子的初始窗口位置?

我有一个在Linux和Windows上运行的应用程序,它看起来像Qt的默认行为,使Window Manager可以确定子窗口的位置。

在Windows上,这位于父屏幕所在的屏幕中央,这似乎是合理的。

在Linux上,在GNOME(移动性)中,它总是位于左上角,这很烦人。我找不到任何关于metacity的窗口管理器首选项,这些首选项允许我控制窗口的放置,因此我想覆盖该行为。

解决方案

回答

Qt小部件几何

在show()之前在子窗口上调用move(x,y)方法。 x和y的默认值为0,这就是为什么它出现在左上角的原因。
我们还可以使用父窗口的位置来计算子窗口的相对位置。

回答

通常,除非应用程序有一些非常特殊的窗口要求,否则我建议不要强行设置窗口位置。确定新窗口放置在何处是窗口管理器的工作,而大多数窗口都做得很好。如果MetaCity的位置不好,那就是它的问题。

如果我们自己进行窗口放置,则可能会获得比效果差的窗口管理器更好的结果,但是我们也会错过更高级的窗口管理器中可用的智能窗口放置算法。