由于vs2015 + Qt插件不能直接建立一个包括 .ui,.cpp ,.h 的对话框模板,只能单独建立一个对话框类型的ui,所以需要手动添加 .cpp 和 .h。
1.添加一个Qt对话框的ui,起名叫Test.ui
2.添加Test.h和Test.cpp
Test.h
#pragma once
#include <Qdialog>
#include "ui_Test.h"
namespace Ui {
class Test;
}
class Test : public QDialog
{
Q_OBJECT
public:
explicit Test(QWidget *parent = Q_NULLPTR);
~Test();
private:
Ui::Test * ui;
};
Test.cpp
setAttribute(Qt::WA_DeleteOnClose);这句用来关闭对话框时释放内存,否则每打开一次对话框内存都会增加,在主程序存续期间不会自己释放。
#include "Test.h"
Test::Test(QWidget *parent)
: QDialog(parent),
ui(new Ui::Test)
{
setAttribute(Qt::WA_DeleteOnClose);
ui->setupUi(this);
}
Test::~Test()
{
delete ui;
}
这样就把对话框模板建立好了。然后通过主点击界面按钮打开对话框。
主界面头文件添加头文件
#include "Test.h"
在类里添加
private:
Ui::QtGuiApplication3Class ui;
Test * dialog;
定义了一个Test类型的对话框,名字叫dialog。
添加槽函数,接点击按钮的信号
void on_pushButton_doit_clicked(bool checkd);
在主界面cpp里添加
}void QtGuiApplication3::on_pushButton_doit_clicked(bool checked)
{
dialog = new Test(this);
dialog->setModal(true);
dialog->show();
}
dialog->setModal(true):设置模态窗口