vs2015 + Qt插件 新建一个对话框类,并从主窗口打开对话框

2022-08-19 10:39:47

由于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):设置模态窗口

  • 作者:smalbig
  • 原文链接:https://blog.csdn.net/smalbig/article/details/104972589
    更新时间:2022-08-19 10:39:47