此文章,只是当做自己学习记录,水平有限
用消息对话框那么肯定就关系到点击事件,所以用到了connect
先上代码
#include "qt_dialog.h"
#include "ui_qt_dialog.h"
Qt_Dialog::Qt_Dialog(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Qt_Dialog)
{
ui->setupUi(this);
connect(ui->actionnew, &QAction::triggered,[=](){
/*对话框:模态对话框、非模态对话框
* 模态对话框:不可以对其他窗口进行操作(阻塞)
* 非模态对话框:可以对其他窗口进行操作*/
/**
//模态创建
QDialog dlg(this); //创建窗口
dlg.exec(); //用模态的方式进行创建。
qDebug() << "模态对话框弹出了" ;
*/
//非模态创建
// QDialog dlg2(this); //栈对象,创建会就没了
/*QDialog *dlg2 = new QDialog(this);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号属性
qDebug() << "模态对话框弹出了" ;*/
//消息对话框(错误对话框)
// QMessageBox::critical(this, "critical", "错误");
//信息对话框
// QMessageBox::information(this, "info", "提示");
//问题对话框
//QMessageBox::question(this, "ques", "问题", QMessageBox::Save | QMessageBox::Cancel);
/*if(QMessageBox::Save == QMessageBox::question(this, "ques", "问题", QMessageBox::Save | QMessageBox::Cancel)){
qDebug() << "选择的是保存";
}else{//用返回值确认
qDebug() << "选择的是取消";
}*/
//警告对话框
//QMessageBox::warning(this, "warning", "警告");
//其他标准(框颜色对话框)
// QColor color = QColorDialog::getColor(QColor(110, 101, 011));
// qDebug() << "r = " << color.red()<< "g = " << color.green() << "b = " << color.blue;
//文件对话框
// QFileDialog::getOpenFileName(this, "打开文件", "D:\\123" );
//文件对话框(过滤的方式)
// QString str = QFileDialog::getOpenFileName(this, "打开文件", "C:\\Users\\90822\\Documents\\PanDownload\\PanData", "(*.txt)");
// qDebug() << str ;
//字体对话框
bool flag;
QFont font = QFontDialog::getFont(&flag, QFont("华文彩云", 28));
qDebug() << "字体:" << font.family() << "是否更改了字号" << font.pointSize() << "是否加粗了" << font.bold();
} );
}
Qt_Dialog::~Qt_Dialog()
{
delete ui;
}
模态对话框
不可以对其他窗口进行操作(阻塞)
//模态创建
QDialog dlg(this); //创建窗口
dlg.exec(); //用模态的方式进行创建。
qDebug() << "模态对话框弹出了" ;
非模态对话
可以对其他窗口进行操作
//非模态创建
//QDialog dlg2(this); //栈对象,创建会就没了
QDialog *dlg2 = new QDialog(this);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号属性
qDebug() << "模态对话框弹出了" ;
消息对话框(错误对话框)
QMessageBox::critical(this, "critical", "错误");
信息对话框
QMessageBox::information(this, "info", "提示");
问题对话框
QMessageBox::question(this, "ques", "问题", QMessageBox::Save | QMessageBox::Cancel);
//这里的QMessageBox::Save | QMessageBox::Cancel)可以自行设置,弹出的选择对话框问题选择是Save 还是 Cancel
if(QMessageBox::Save == QMessageBox::question(this, "ques", "问题", QMessageBox::Save | QMessageBox::Cancel)){
qDebug() << "选择的是保存";
}else{//用返回值确认
qDebug() << "选择的是取消";
首先,它是static的,所以我们能够使用类名直接访问到(怎么看都像废话…);然后看它那一堆参数,第一个参数parent,说明它的父组件;第二个参数title,也就是对话框的标题;第三个参数text,是对话框显示的内容;第四个参数buttons,声明对话框放置的按钮,默认是只放置一个OK按钮,这个参数可以使用或运算,例如我们希望有一个Yes和一个No的按钮,可以使用QMessageBox::Yes | QMessageBox::No,所有的按钮类型可以在QMessageBox声明的StandarButton枚举中找到;第五个参数defaultButton就是默认选中的按钮,默认值是NoButton,也就是哪个按钮都不选中。这么多参数,豆子也是记不住的啊!所以,我们在用QtCreator写的时候,可以在输入QMessageBox::information之后输入(,稍等一下,QtCreator就会帮我们把函数签名显示在右上方了,还是挺方便的一个功能!
警告对话框
QMessageBox::warning(this, "warning", "警告");
其他标准(框颜色对话框)
QColor color = QColorDialog::getColor(QColor(110, 101, 011));
qDebug() << "r = " << color.red()<< "g = " << color.green() << "b = " << color.blue;
文件对话框
QFileDialog::getOpenFileName(this, "打开文件", "D:\\123" );
过滤的选择某文件类型
QFileDialog::getOpenFileName(this, "打开文件", "D:\\123" );
字体对话框
QFont font = QFontDialog::getFont(&flag, QFont("华文彩云", 28));
qDebug() << "字体:" << font.family() << "是否更改了字号" << font.pointSize() << "是否加粗了" << font.bold();