我想知道在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
)。