Qt消息对话框

问题对话框

对应API

cpp 复制代码
[static] QMessageBox::StandardButton QMessageBox::question(
QWidget *parent, 
const QString &title, 
const QString &text, 
QMessageBox::StandardButtons buttons = StandardButtons(Yes | No),
QMessageBox::StandardButton defaultButton = NoButton)

举例:

cpp 复制代码
//参数1:父窗口
//参数2:对话框标题
//参数3:对话框提示文本
//参数4:对话框按钮
//参数5:对话框刚弹出时默认选择的按钮
//返回值:点击的按钮
auto choice = QMessageBox::question(this,
    "Question",
    "你是否想退出,请选择:",
    QMessageBox::Ok | QMessageBox::Cancel,
    QMessageBox::Ok);
switch (choice) {
    case QMessageBox::Ok:
        //do something
        qDebug() << "选择了ok";
        break;
    case QMessageBox::Cancel:
        //do something
        qDebug() << "选择了cancel";
        break;
    default:
        break;
}

提示对话框

对应API

cpp 复制代码
[static] QMessageBox::StandardButton QMessageBox::information(
  	QWidget * parent,
    const QString & title,
    const QString & text, 
   	QMessageBox::StandardButtons buttons = Ok,
    QMessageBox::StandardButton defaultButton = NoButton)

举例:

cpp 复制代码
//参数1:父窗口
//参数2:对话框标题
//参数3:对话框提示文本
//其余几个参数使用默认的就好了,提示对话框不需要什么按钮
//返回值:点击的按钮
auto choice = QMessageBox::information(this, "Information", "即将退出!");
switch (choice) {
    case QMessageBox::Ok:
        //do something
        qDebug() << "选择了ok";
        break;
    case QMessageBox::Cancel:
        //do something
        qDebug() << "选择了cancel";
        break;
    default:
        break;
}

警告对话框

对应API

cpp 复制代码
[static] QMessageBox::StandardButton QMessageBox::warning(
  	QWidget * parent,
    const QString & title,
	const QString & text, 
    QMessageBox::StandardButtons buttons = Ok,
	QMessageBox::StandardButton defaultButton = NoButton)

举例:

cpp 复制代码
//参数1:父窗口
//参数2:对话框标题
//参数3:对话框提示文本
//参数4:对话框按钮
//参数5:对话框刚弹出时默认选择的按钮
//返回值:点击的按钮
auto choice = QMessageBox::warning(this, "Warning", "会被删除!",
    QMessageBox::Ok | QMessageBox::Cancel,
    QMessageBox::Cancel);
switch (choice) {
    case QMessageBox::Ok:
        //do something
        qDebug() << "选择了ok";
        break;
    case QMessageBox::Cancel:
        //do something
        qDebug() << "选择了cancel";
        break;
    default:
        break;
}

错误对话框

对应API

cpp 复制代码
[static] QMessageBox::StandardButton QMessageBox::critical(
  	QWidget * parent,
    const QString & title,
	const QString & text, 
  	QMessageBox::StandardButtons buttons = Ok,
	QMessageBox::StandardButton defaultButton = NoButton)

举例:

cpp 复制代码
//参数1:父窗口
//参数2:对话框标题
//参数3:对话框提示文本
//其余几个参数使用默认的就好了,错误对话框不需要什么按钮
//返回值:点击的按钮
auto choice = QMessageBox::critical(this, "critical", "错误操作!");
switch (choice) {
    case QMessageBox::Ok:
        //do something
        qDebug() << "选择了ok";
        break;
    case QMessageBox::Cancel:
        //do something
        qDebug() << "选择了cancel";
        break;
    default:
        break;
}

关于对话框

就是一个简单的对话框,可以介绍一些版本信息什么的

对应API

cpp 复制代码
[static] void QMessageBox::about(
  	QWidget * parent,
    const QString & title,
	const QString & text)

举例:

cpp 复制代码
//参数1:父窗口
//参数2:对话框标题
//参数3:对话框提示文本
QMessageBox::about(this, "about", "版本:v1.1");

自定义消息对话框

相关API

  • 设置标题
cpp 复制代码
void QMessageBox::setWindowTitle(const QString &title)
  • 设置自定义图片
cpp 复制代码
void setIconPixmap(const QPixmap &pixmap)
  • 设置文本
cpp 复制代码
void setText(const QString &text
  • 设置按钮
cpp 复制代码
//自定义按钮role一般设置为QMessageBox::ButtonRole::ActionRole
//返回值:添加的按钮
QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)
  • 获取点击的按钮
cpp 复制代码
QAbstractButton *QMessageBox::clickedButton() const

举例:

cpp 复制代码
QMessageBox custom_message_box;

//1.设置标题
custom_message_box.setWindowTitle("自定义对话框");
//2.设置图片
custom_message_box.setIconPixmap(QPixmap(":/11.png").scaled(20, 20));
//3.设置文本
custom_message_box.setText("这是一个自定义对话框");
//4.添加按钮
QPushButton * btn_yes = custom_message_box.addButton("YES", QMessageBox::ButtonRole::ActionRole);
QPushButton * btn_no = custom_message_box.addButton("NO", QMessageBox::ButtonRole::ActionRole);
//模态显示对话框
custom_message_box.exec();
//5.获取点击的按钮
if (custom_message_box.clickedButton() == btn_yes) {
    //do something...
} else if (custom_message_box.clickedButton() == btn_no) {
    //do something...
}

学习链接:https://github.com/0voice

相关推荐
liuyao_xianhui2 分钟前
map和set_C++
java·开发语言·数据结构·c++·算法·宽度优先
香蕉鼠片6 分钟前
八股C++
开发语言·c++
feng_you_ying_li7 分钟前
C++之智能指针的介绍与实现
c++
墨^O^9 分钟前
C++ Memory Order 完全指南:从 relaxed 到 seq_cst,深入理解无锁编程与 happens-before
linux·开发语言·c++·笔记·学习·算法·缓存
6Hzlia20 分钟前
【Hot 100 刷题计划】 LeetCode 51. N 皇后 | C++ 回溯算法&状态数组
c++·算法·leetcode
脱氧核糖核酸__1 小时前
LeetCode热题100——41.缺失的第一个正数(题解+答案+要点)
数据结构·c++·算法·leetcode·哈希算法
脱氧核糖核酸__1 小时前
LeetCode热题100——73.矩阵置零(题目+题解+答案)
c++·算法·leetcode·矩阵
智者知已应修善业1 小时前
【51单片机数码管+蜂鸣器的使用】2023-6-14
c++·经验分享·笔记·算法·51单片机
艾莉丝努力练剑1 小时前
【Linux线程】Linux系统多线程(七):<线程同步与互斥>线程同步(下)
java·linux·运维·服务器·c++·学习·操作系统
c++逐梦人1 小时前
C++ RAII流式日志库实现
开发语言·c++