天天看点

Qt中如何插入对话框

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连接,这里就不描述了。

继续阅读