我可以在其他源文件中使用Qt design Form
class
作为QMessageBox
的种类吗?我有一个包含源文件的类,以及一个没有源文件的ui文件。在Ui命名空间中,我只能添加头文件,而不能添加ui元素。我需要使用QLineEdit
和QPushButtons
添加许多此类拨号框。
namespace Ui {
class MainWindow;
}
答案 0 :(得分:1)
要使用.ui表单,您需要使用uic。通过启动命令uic basicform.ui,它将在输出中写入生成的。所以你可以这样做:
uic basicform.ui > ui_basicform.h
然后在.cpp中包含ui_basicform.h,并且与创建普通表单类时相同(添加ui名称空间,创建ui属性,初始化它,运行setupUi方法)。
例如,Form为QWidget,在mainwindow.h中有
namespace Ui {
class MainWindow;
}
添加class Form;
然后在MainWindow类的属性中添加Ui::Form ui_form;
在mainWindow.cpp之后,初始化列表如下:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
添加ui_form(new Ui::Form)
然后在你得到的构造函数中:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
ui_form(new Ui::Form)
{
ui->setupUi(this);
}
现在它就像:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
ui_form(new Ui::Form)
{
ui->setupUi(this);
QWidget* test = new QWidget(this);
ui_form->setupUi(test);
ui->centralWidget->layout()->addWidget(test);
}