Qt 从主窗口打开在Designer中创建的小部件
我已经创建了2个Qt 从主窗口打开在Designer中创建的小部件,qt,qt-designer,Qt,Qt Designer,我已经创建了2个.ui文件,一个是主窗口,另一个是小部件。设计器生成2个.header文件,每个文件在类声明周围都有QT\u BEGIN\u命名空间 问题是,在打开我的主窗口时起作用的东西,在打开第二个窗口小部件时不起作用 为了显示我的主窗口,我创建了一个从我的.ui文件继承的类: class myWindow: public QMainWindow, private Ui::uiClassWindow setupUi(this); 这会很好地打开,因此要打开第二个小部件窗口,我声明一
.ui
文件,一个是主窗口,另一个是小部件。设计器生成2个.header
文件,每个文件在类声明周围都有QT\u BEGIN\u命名空间
问题是,在打开我的主窗口时起作用的东西,在打开第二个窗口小部件时不起作用
为了显示我的主窗口,我创建了一个从我的.ui
文件继承的类:
class myWindow: public QMainWindow, private Ui::uiClassWindow
setupUi(this);
这会很好地打开,因此要打开第二个小部件窗口,我声明一个通用小部件对象,然后用指向我的小部件Ui
头文件的指针保存它:
QWidget newWidget;
setupUi(newWidget)
但是setupUi
解析为我的主窗口头文件…我如何告诉它使用小部件的setupUi
有更好的方法吗?据我所知,setupUi函数是在Ui名称空间中定义的。您还需要为其他小部件提供作用域(Ui)。方法是由您的Ui文件中的
uic
创建的setupUi()
在您的myWindow
中,您继承自Ui::uiClassWindow
,并且可以使用其setupUi()
方法而无需任何限制。您需要为您的newWidget
创建一个不同UI类的实例:
auto widget_ui = new Ui::myWidget;
QWidget newWidget;
widget_ui->setupUi(newWidget)
如果需要,您可以立即删除小部件\u ui
,但通常需要保留它,以便访问它现在在newWidget
中创建的子级。您可以使用类名来限定调用吗?也就是说,OtherWidgetUI::setupUi(newWidget)代码>?