2016-04-18 82 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()