【转】QT创建子对话框的方法
原文地址:http://blog.csdn.net/baidu_18991997/article/details/42713159
代码实现功能:单击某个按钮后,弹出对话框,对话框中的内容可自行设计。
1.建立一个主界面,主界面中有一个pushbotton按键。
2.右键项目->添加新文件->Qt设计师界面类
Part II——对话框的模态和非模态
1、 建立一个对话框类:
2、 对话框中放置pushbutton和TextEdit:
3、 转到主窗口菜单栏New Window的槽:
4、 在槽中插入如下代码(并且在mainwindow.h中要建立对话框的指针):
5、显示结果如下:
(1)非模态显示(dialog->setModal(false)):
(2)模态显示(dialog->setModal(ture)):
给出完整程序(只给出需要填写代码和有注释部分,无改动的不给出):
mainwindow.h程序:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include"mydialog.h"
namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = );
~MainWindow(); private slots:
void on_actionNew_Window_triggered(); private:
Ui::MainWindow *ui;
MyDialog *dialog; //添加私有成员,为一个dailog(窗口)的指针
}; #endif // MAINWINDOW_H
mainwindow.cpp程序:
#include "mainwindow.h"
#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//把给定的组件设定成主窗口的中央组件,这里是把plainTextEdit设为窗口的中央组件
setCentralWidget(ui->plainTextEdit);
} MainWindow::~MainWindow()
{
delete ui;
} void MainWindow::on_actionNew_Window_triggered()
{
//新建一个窗口对象,其中的this指定了新的窗口的父对象是MainWindow,在销毁Mainwindow时也会销毁子对象,即该窗口对象
dialog = new MyDialog(this);
//Modal属性决定了show()应该将弹出的dialog设置为模态还是非模态
//默认情况下该属性为false并且show()弹出的窗口是非模态的
//把这个属性设置为true就详单与设置QWidget::windowModality为Qt::ApplicationModal
//执行exec()忽略这个Modal这个属性,并且把弹出的dialog设置为模态的
dialog->setModal(false); //此处ture为模态,false为非模态
dialog->show();
}
main.cpp程序:
//2014/8/3 wayne HDU
//问题描述:(1)创建一个mainwindow(2)创建一个dialog,并且展示modal和modaless的区别
#include "mainwindow.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show(); return a.exec();
Part II——对话框的模态和非模态
1、 建立一个对话框类:
2、 对话框中放置pushbutton和TextEdit:
3、 转到主窗口菜单栏New Window的槽:
4、 在槽中插入如下代码(并且在mainwindow.h中要建立对话框的指针):
5、显示结果如下:
(1)非模态显示(dialog->setModal(false)):
(2)模态显示(dialog->setModal(ture)):
给出完整程序(只给出需要填写代码和有注释部分,无改动的不给出):
mainwindow.h程序:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include"mydialog.h"
namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = );
~MainWindow(); private slots:
void on_actionNew_Window_triggered(); private:
Ui::MainWindow *ui;
MyDialog *dialog; //添加私有成员,为一个dailog(窗口)的指针
}; #endif // MAINWINDOW_H
mainwindow.cpp程序:
#include "mainwindow.h"
#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//把给定的组件设定成主窗口的中央组件,这里是把plainTextEdit设为窗口的中央组件
setCentralWidget(ui->plainTextEdit);
} MainWindow::~MainWindow()
{
delete ui;
} void MainWindow::on_actionNew_Window_triggered()
{
//新建一个窗口对象,其中的this指定了新的窗口的父对象是MainWindow,在销毁Mainwindow时也会销毁子对象,即该窗口对象
dialog = new MyDialog(this);
//Modal属性决定了show()应该将弹出的dialog设置为模态还是非模态
//默认情况下该属性为false并且show()弹出的窗口是非模态的
//把这个属性设置为true就详单与设置QWidget::windowModality为Qt::ApplicationModal
//执行exec()忽略这个Modal这个属性,并且把弹出的dialog设置为模态的
dialog->setModal(false); //此处ture为模态,false为非模态
dialog->show();
}
main.cpp程序:
//2014/8/3 wayne HDU
//问题描述:(1)创建一个mainwindow(2)创建一个dialog,并且展示modal和modaless的区别
#include "mainwindow.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show(); return a.exec();
【转】QT创建子对话框的方法的更多相关文章
- QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例
QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例 部分代码: // 创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束 QMenu *pDialog = mBar->ad ...
- QT创建与调用Dll方法(包括类成员)--显式调用
看网上的好多关于QT调用Dll的方法,大部分都是调用函数的,并没有调用C++类成员的情况,即使是有,比如说: 使用Qt编写模块化插件式应用程序 Qt 一步一步实现dll调用(附源码)---(这一篇里没 ...
- MFC在子线程中创建窗口(PostMessage方法)
1.创建子线程 C++创建线程的方式比较多 1)最简单易用的<thread>头文件,但是这种方法创建的子线程中无法给主线程PostMessage消息(也可能是我操作有误,总之没成功) 2) ...
- QT学习之路--创建一个对话框
Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学 ...
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
详细说明:Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法.该方法可以在运行时在内存中直接建立对话框资源,使用起来更为灵活.适用于多个开发项目共享有界面的公用程序模 ...
- QT源码解析(七)Qt创建窗体的过程,作者“ tingsking18 ”(真正的创建QPushButton是在show()方法中,show()方法又调用了setVisible方法)
前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...
- Creating Dialogbased Windows Application (2) / 创建基于对话框的Windows应用程序(二)Button的应用、新建子窗体 / VC++, Windows
创建基于对话框的Windows应用程序(二) —— Button的应用.新建子窗体 可以发现上一节创建的窗体中,点击OK和Cancel两个按钮是没有任何反应的.现在我们来为他们添加退出对话框的功能. ...
- 第八章 Qt GUI之对话框使用
第八章 Qt GUI之对话框使用 对话框可以是模态(modal)的或非模态(modeless)两种.当我们在一个用户界面程序里面对一个对话框(比如选择文件对话框)的操作没有结束前,界面的其他窗口无法操 ...
- QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)
QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...
随机推荐
- cmd命令窗口相关操作指南
cmd命令窗口打开方式:win+R cmd 1.盘符切换 d: 回车 (d为磁盘名) 2.查看当前目录下的文件和文件夹 输入dir 3.进入指定目录(若需跨盘符操作,应先切换盘符) cd(空格)+绝对 ...
- vm中centos7磁盘扩容
在VM虚拟平台管理客户端,将虚拟机关机后,将分配的磁盘大小30G扩至300G.如图. 调整完后,重新打开虚拟机,使用fdisk -l查看,可以看到我们刚刚扩容的空间已经可以看到,但没有分区,还 ...
- apche 配置
http://www.tootoogo.org/wordpress/?p=230 apache的配置由httpd.conf 文件配置. 1.基本配置 ServerRoot "/mnt/sof ...
- poj3040
一.题意:约翰要给他的牛贝西发工资,每天不得低于C元,约翰有n种面值的钱币,第i种的面值为v_i,数量有b_i.问这些钱最多给贝西发多少天的工资.注意,每种面值的金钱都是下一种的面值的倍数. 二.思路 ...
- PIE SDK正射校正
1. 算法功能简介 正射校正是对影像空间和几何畸变进行校正生成多中心投影平面正射图像的处理过程.它除了能纠正一般系统因素产生的几何畸变外,还可以消除地形引起的几何畸变 PIE支持算法功能的执行,下面对 ...
- shell 命令之bind,enable,ulimit
1.bind 在shell中,内建(builtin)命令bind,格式如下: bind [-m keymap] [-lpsvPSVX] bind [-m keymap] [-q function] [ ...
- RabbitMQ基础知识篇
1.Linux安装RabbitMQ. 参考网址:RPM安装RabbitMQ 仔细阅读. 先安装erlang: su -c 'rpm -Uvh http://mirrors.neusoft.edu. ...
- cxf 框架 webservice
cxf 内置了一个web服务器 cxf简单入门实例 package test; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; import c ...
- 通过c++ 读写文本文件的中文乱码的解决方法
前提:VS2010 ,MFC ,文本文件为ANSI格式. 读文件: CString str,fileContent;CStdioFile myFile, File;if(myFile.Open(Gen ...
- c++ MFC图像处理CImage类常用操作代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html MFC图像处理CImage类常用操作 CImage类头文件为#inclu ...