由于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{classTest;}classTest:public QDialog{
Q_OBJECTpublic:explicitTest(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::QtGuiApplication3Classui;
Test* dialog;
定义了一个Test类型的对话框,名字叫dialog。
添加槽函数,接点击按钮的信号
voidon_pushButton_doit_clicked(bool checkd);
在主界面cpp里添加
}void QtGuiApplication3::on_pushButton_doit_clicked(bool checked){
dialog=newTest(this);
dialog->setModal(true);
dialog->show();}
dialog->setModal(true):设置模态窗口