【发布时间】:2022-01-12 21:53:09
【问题描述】:
我使用.ui 文件创建了QT 自定义小部件MyWidget。但是当我在 QT 设计器中将 QWidget 放置到 MainWindow 并将其提升为 MyWidget 时,它只会呈现一个空的小部件。
我知道为什么它不起作用。在函数setupUi 中生成的文件ui_mainwindow.h 中是用于显示我的小部件的代码如下:
widget = new MyWidget(centralWidget);
widget->setObjectName(QString::fromUtf8("widget"));
verticalLayout->addWidget(widget);
当我调用Ui::MyWidget.setupUi(将上面的代码替换为以下代码)时,它可以工作:
widget = new MyWidget(centralWidget);
Ui::MyWidget uiOfWidget;
uiOfWidget.setupUi(widget);
widget->setObjectName(QString::fromUtf8("widget"));
verticalLayout->addWidget(widget);
所以我的问题是,如何才能达到以下条件之一:
- 编译
MainWindow.ui文件时自动生成这样的代码 - 无需调用
Ui::MyWidget.setupUi - 或其他修复...?
我使用 QT5。谢谢!
【问题讨论】:
-
通常我在 MyWidget 的构造函数中调用 setupUi 就像我对使用
.ui的任何其他小部件所做的那样
标签: c++ qt qt-designer qtwidgets