我想知道在Qt自定義對話框中初始化控件的已建立的過程。在我編寫的代碼中,對話框將顯示一個QListView
,其中包含在構建過程中通過引用傳遞給對話框類的對象的目錄。當顯示對話框時,我顯然希望列表顯示當前在對象中配置的目錄。Qt:如何初始化對話框小部件?
這應該在哪裏做?也許在重覆的showEvent()
方法?
背景:我以前做了很多MFC編程的回到了一天,會做這種東西在OnCreate
方法,或一些這樣的,一旦窗口對象已經建立。
我想知道在Qt自定義對話框中初始化控件的已建立的過程。在我編寫的代碼中,對話框將顯示一個QListView
,其中包含在構建過程中通過引用傳遞給對話框類的對象的目錄。當顯示對話框時,我顯然希望列表顯示當前在對象中配置的目錄。Qt:如何初始化對話框小部件?
這應該在哪裏做?也許在重覆的showEvent()
方法?
背景:我以前做了很多MFC編程的回到了一天,會做這種東西在OnCreate
方法,或一些這樣的,一旦窗口對象已經建立。
謝天謝地,Qt並不要求你做任何鉤子來找到創建事物的時刻(除非你想)。如果你看看在Qt的例子進行對話,大部分做所有的構建在構造函數中:
http://doc.qt.io/archives/qt-4.7/examples-dialogs.html
的標籤對話框的例子 - 例如 - doesn't做到「按需」選項卡的初始化。雖然你可以通過currentChanged
信號線的東西了:
http://doc.qt.io/archives/qt-4.7/qtabwidget.html#currentChanged
嚮導式的對話具有initializePage
和cleanupPage
方法:
http://doc.qt.io/archives/qt-4.7/qwizardpage.html#initializePage
http://doc.qt.io/archives/qt-4.7/qwizardpage.html#cleanupPage
但總的來說,你可以使用構造函數。我想主要的例外情況是,如果發現自己在實際顯示對話的時候(通過exec
)在更早的時間分配對話,並且在實際顯示之前不想承擔某些部分的性能負擔。這種情況應該是非常罕見的,可能最簡單的做法就是添加自己調用的函數(如finalizeCreationBeforeExec
)。