我在Qt Designer中创建了一个主窗口UI文件。为了避免混乱并使代码更加模块化,我想在单独的ui文件中创建此窗口的某些部分。
例如,我可能在主窗口上有一个标签小部件,然后我想要单独的page1.ui和page2.ui然后我可以"嵌入"在主窗口内。
是否可以只使用UI文件,还是需要为每个其他小部件创建一个类?
我正在考虑创建单独的类Page1UI
和Page2UI
,这些类公开继承自qmake生成的ui_page1.h
和ui_page2.h
(以便可以轻松访问其中的小部件)从主窗口)然后将主窗口的占位符小部件提升到这些类。所以在代码中我有类似的东西,例如:
connect (page1->ui->someButtonFromPage1uiFile, ..., this->ui->someMainWindowWidget, ...);
然而Qt documentation似乎没有提到公共继承,所以我想知道这是否是正确的方法,或者是否有更简单的方法。
答案 0 :(得分:1)
你不需要继承。这些UI文件只是小部件。所以你当然可以这样做。你应该有一个主类,它将有一个标签小部件,然后只需在主标签小部件中添加你的page1,page2等。在我看来,你需要的是组合。
您需要做的是创建一个派生自QWidget
的单独类,该类将包含您生成的UI表单的对象。您需要使用setupUI()
作为参数在新课程中调用该生成表单的this
。