2016-04-18 45 views
0

在我相当复杂的应用程序中,我创建了几个QmainWindows,根据条件显示/隐藏。为了使他们的行为更具确定性,我想使用setPosition()来设置他们的位置。正如我所设想的那样,问题在于QMainWindow不是从QWindow派生的。所以它没有setPosition()。我的问题:如何设置QMainWindow的位置?

  • 为什么QMainWindow不是从QWindow派生的? (只是我的好奇心)

  • 如何设置QMainWindow的位置?

+2

为什么'移动(INT X,int y)对'不适合你? – Tarod

+0

QWindow是一个相当新的类,它是本机和独立于平台的UI窗口之间的适配器。 QWidget历来是大多数Qt UI类的父类。事实上,QWindow还没有那么长时间。是的,QMainWindow派生自QWidget。 – AlexanderVX

+0

@Tarod,因为我找到了setPosition():)。而且,因为我在展示()之前尝试设置它。谢谢,我在Qt历史上没有受过教育。 – katang

回答

1

(@Tarod和@AlexanderVX已经给在评论的答案,但在这里,他们再次)

QMainWindow的,为什么不从QWindow衍生?

主要是因为QMainWindow早在QWindow被发明之前就已存在。

QMainWindow继承QWidgetQWidget是灵活的;它可以成为顶级窗口,或者它可以成为更大窗口部件的一部分。这意味着你可以把QMainWindow放在另一个小部件中(但你可能不想这么做)。

如何设置QMainWindow的位置?

您设置的任何其他QWidget位置以同样的方式:http://doc.qt.io/qt-5/qwidget.html#pos-propQWidget::move()