响应式网站写法,做外贸都有哪些好网站,济南制作网站的公司哪家好,高清vga视频线对话框 前言一、模态和非模态对话框1.1 概念1.2 模态对话框1.2.1 代码QAction类 1.2.2 模态对话框运行分析 1.3 非模态对话框1.3.1 代码局部变量和成员变量setAttribute 类 1.3.2 现象解释 二、标准对话框2.1 提示对话框 QMessageBox2.1.1 现象及解释 2.2 问题对话框2.2.1 现象… 对话框 前言一、模态和非模态对话框1.1 概念1.2 模态对话框1.2.1 代码QAction类 1.2.2 模态对话框运行分析 1.3 非模态对话框1.3.1 代码局部变量和成员变量setAttribute 类 1.3.2 现象解释 二、标准对话框2.1 提示对话框 QMessageBox2.1.1 现象及解释 2.2 问题对话框2.2.1 现象解释 三、文件对话框所有代码汇总 前言 一、模态和非模态对话框
1.1 概念
1模态对话框 当它被显示时会阻止用户与应用程序的其他部分进行交互直到该对话框被关闭。用户必须先处理模态对话框完成所需操作如输入信息、选择选项或确认操作等之后才能继续操作应用程序的其他部分。 它就像一个临时的交互模式将用户的操作焦点强制限制在对话框内其他部分处于不可用状态。 2非模态对话框 非模态对话框允许用户在不关闭该对话框的情况下继续与应用程序的其他部分进行交互。用户可以同时操作对话框和应用程序的其他部分对话框不会限制用户对主程序的操作。 它可以提供辅助信息或持续的操作功能不会独占用户的操作焦点。 比如WPS中的一个查找和替换的对话框你可以打开查找和替换对话框输入查找和替换的内容同时你还可以继续在主文档中滚动、编辑文本等操作。该对话框始终显示在屏幕上你可以随时使用它但也可以随时操作主界面它不会强制中断你的主程序操作流程。
1.2 模态对话框
1.2.1 代码 mainwindow.cpp
#include mainwindow.h
#include QMenu
#include QMenuBar
#include QAction
#include QDialog
#include QDebugMainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{QMenuBar *mBar menuBar();setMenuBar(mBar);QMenu *menu mBar-addMenu(对话框);QAction *p1 menu-addAction(模态对话框);connect(p1,QAction::triggered,[](){QDialog dialog;dialog.exec(); // 程序会运行到这里等待用户操作qDebug()run this;});
}MainWindow::~MainWindow()
{}
QAction类
用于表示一个可执行的操作action。它在图形用户界面GUI编程中非常常用尤其是在涉及菜单、工具栏和快捷键的场景中。 可以轻松地将这些操作与菜单项、工具栏按钮或快捷键绑定。 1.2.2 模态对话框运行分析 刚开始运行的界面 点击之后进入槽函数 关闭对话框即可出现 模态对话框会阻塞其父窗口的输入直到对话框被关闭。用户必须先处理完对话框中的操作才能继续操作父窗口。
1.3 非模态对话框
1.3.1 代码
在上一个的基础上add 这个是一个方法就是改变变量的生存周期另外一种就是动态分配空间。
升级版本 QDialog *p new QDialog;p-setAttribute(Qt::WA_DeleteOnClose); // 当窗口或对话框关闭时自动删除该对象。p-show();qDebug()run this 2;局部变量和成员变量
局部变量 局部变量是在函数或代码块内部定义的变量它的作用域仅限于定义它的代码块。 局部变量的作用域仅限于其所在的代码块如函数、循环、条件语句等。在代码块外部无法访问局部变量。局部变量的生命周期从变量被定义开始到代码块结束时结束。当代码块执行完毕时局部变量会被销毁占用的内存也会被释放。局部变量通常存储在**栈stack**中。
成员变量 成员变量是定义在类内部的变量它是类的一部分用于存储对象的状态信息。 成员变量的作用域是整个类可以在类的任何成员函数中访问。成员变量也被称为类的属性或字段。成员变量的生命周期与对象的生命周期一致。当对象被创建时成员变量被初始化当对象被销毁时成员变量也会被销毁。成员变量通常存储在**堆heap**中与对象的其他部分一起分配内存。 setAttribute 类
用于设置对象的属性attributes。这些属性可以影响对象的行为或外观。setAttribute 是 QObject 类的一个成员函数因此几乎所有 Qt 对象如窗口、对话框、控件等都可以使用它。 Qt 提供了许多预定义的属性可以通过 Qt::WidgetAttribute 枚举来设置。
Qt::WA_DeleteOnClose当窗口或对话框关闭时自动删除该对象。Qt::WA_QuitOnClose当窗口关闭时调用 QApplication::quit()退出应用程序。Qt::WA_ShowModal使窗口或对话框以模态方式显示类似于 exec()但不阻塞线程。Qt::WA_TranslucentBackground使窗口的背景透明。Qt::WA_TransparentForMouseEvents使窗口对鼠标事件透明鼠标事件会传递到窗口下方的控件。
1.3.2 现象解释
二者并存不会被堵塞。
二、标准对话框
2.1 提示对话框 QMessageBox
添加这段代码
这里需要注意的事情是
2.1.1 现象及解释 对应的关系是
2.2 问题对话框
查看返回值的枚举内容
添加代码 返回值的内容支持自己指定别的枚举里的内容
2.2.1 现象解释 三、文件对话框 选择了一个文件才会有文件路径显示出来否则就不会有值被打印 踩了点坑。。。。 如果需要指定打开文件的目标文件的类型需要在后面添加 所有代码汇总
mainwindow.cpp
#include mainwindow.h
#include QMenu
#include QMenuBar
#include QAction
#include QDialog
#include QDebug
#include QMessageBox
#include QFileDialogMainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{QMenuBar *mBar menuBar();setMenuBar(mBar);QMenu *menu mBar-addMenu(对话框);QAction *p1 menu-addAction(模态对话框);connect(p1,QAction::triggered,[](){QDialog dialog;dialog.exec(); // 程序会运行到这里等待用户操作qDebug()run this;});QAction *p2 menu-addAction(非模态对话框);connect(p2,QAction::triggered,[](){
// QDialog dialog;
// dialog.show();QDialog *p new QDialog;p-setAttribute(Qt::WA_DeleteOnClose); // 当窗口或对话框关闭时自动删除该对象。p-show();qDebug()run this 2;});QAction *p3 menu-addAction(关于对话框);connect(p3,QAction::triggered,[](){QMessageBox::about(this,about,关于qt);});QAction *p4 menu-addAction(问题对话框);connect(p4,QAction::triggered,[](){int back QMessageBox::question(this,question,吃了吗,QMessageBox::Ok,QMessageBox::Cancel);switch (back){case QMessageBox::Ok:qDebug() 吃了;break;case QMessageBox::Cancel:qDebug() 肚肚饿饿;break;default:break;}});QAction *p5 menu-addAction(文件对话框);connect(p5,QAction::triggered,[](){
// QString FilePath QFileDialog::getOpenFileName(this,open,../);QString FilePath QFileDialog::getOpenFileName(this,open,../,source(*.cpp *.h);;Text(*txt);;all(*.*));qDebug()文件路径FilePath;});
}MainWindow::~MainWindow()
{}
还有这句别忘记加了