如何设置QMainWindow的位置?

6

在我比较复杂的应用中,我创建了多个QmainWindows,并根据条件显示/隐藏。为了使它们的行为更加确定性,我想使用setPosition()设置它们的位置。问题是QMainWindow并没有像我想的那样从QWindow派生而来,因此没有setPosition()。我的问题:

  • 为什么QMainWindow没有从QWindow派生而来?(只是我的好奇心)

  • 如何设置QMainWindow的位置?


4
为什么 move(int x, int y) 不适合你? - Tarod
QWindow是一个相对较新的类,它是本地和平台无关UI窗口之间的适配器。QWidget是大多数Qt UI类的历史父类。事实上,QWindow还没有存在很长时间。而且,是的,QMainWindow是从QWidget派生而来的。 - Alexander V
@Tarod 因为我找到了setPosition() :)。而且,因为我在show()之前尝试设置它。谢谢,我对Qt的历史不太了解。 - katang
1个回答

5

(@Tarod和@AlexanderVX已经在评论中给出了答案,但这里再次提供)

为什么QMainWindow没有从QWindow派生?

主要是因为QMainWindowQWindow被发明之前就存在了。

QMainWindow继承自QWidgetQWidget非常灵活; 它可以成为顶级窗口,也可以成为更大的小部件的一部分。 这意味着您可以将QMainWindow放在另一个小部件内(但您可能不想这样做)。

如何设置QMainWindow的位置?

与设置任何其他QWidget的位置相同:http://doc.qt.io/qt-5/qwidget.html#pos-prop (QWidget::move())


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接