有没有办法在 Qt 中指定孩子的初始窗口位置?
我有一个在 Linux 和 Windows 上运行的应用程序,看起来 Qt 的默认行为让窗口管理器确定子窗口的位置。
在 Windows 上,它位于父屏幕的中心,这似乎是合理的。
在 Linux 上,在 GNOME(metacity)中,它总是在左上角,这很烦人。我找不到任何允许我控制窗口放置的 metacity 窗口管理器首选项,因此我想覆盖该行为。
有没有办法在 Qt 中指定孩子的初始窗口位置?
我有一个在 Linux 和 Windows 上运行的应用程序,看起来 Qt 的默认行为让窗口管理器确定子窗口的位置。
在 Windows 上,它位于父屏幕的中心,这似乎是合理的。
在 Linux 上,在 GNOME(metacity)中,它总是在左上角,这很烦人。我找不到任何允许我控制窗口放置的 metacity 窗口管理器首选项,因此我想覆盖该行为。
在 show() 之前调用子窗口上的 move(x, y) 方法。x 和 y 的默认值为 0,因此它出现在左上角。
您还可以使用父窗口的位置来计算子窗口的相对位置。
一般来说,除非您的应用程序有一些非常特殊的窗口要求,否则我建议不要强制窗口位置。窗口管理器的工作是确定新窗口的放置位置,并且大多数窗口都做得很好。如果 MetaCity 没有选择一个好的位置,那就是它的问题。
如果您自己放置窗口,您可能会得到比糟糕的窗口管理器更好的结果,但您也会错过更高级窗口管理器中可用的智能窗口放置算法。