Qt中绘制的ui是不能直接用于程序中的,得先把它和一个类关联,然后通过类的对象来显示ui文件。
这里来通过一个小例子来说明一下,我的编译环境是Qt 5.4.1。题目要求是在MainWindow中加入一个菜单栏你的按钮,点击“它”打开一个对话框。
步骤1.添加新的ui。
给工程里添加一个对话框,对话框里的内容我们不关心,在生成的ui_dialog.h中,我们可以看到:
namespace Ui {
class DialogUi: public Ui_DialogUi {};
}
这个ui界面用DialogUi这个类来描述。
步骤2.新建一个类——DialogClass,里面有 Ui::DialogUi *ui;
class DialogClass : public QDialog
{
Q_OBJECT
public:
explicit DialogClass(QWidget *parent = 0);
~DialogClass();
private:
Ui::DialogUi *ui;
};
构造函数为:
DialogClass::DialogClass(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogUi)
{
ui->setupUi(this);
}
注意这里是新建这个DialogUi类的对象,然后调用setupUi()这个函数。
步骤3:在槽函数中构建DialogClass的对象,然后调用exec()函数。
void MainWindow::sl_openDialog()
{
DialogClass * m_dlg = new DialogClass;
m_dlg->exec();
}
至于槽函数如何和QAction连接,这里就不描述了。