Qt消息框(QMessageBox)的全面使用指南
1.1 预定义消息框类型Qt提供6种标准消息类型通过静态方法快速调用类型调用方法适用场景消息提示框QMessageBox::information()普通信息展示警告提示框QMessageBox::warning()操作风险警示错误提示框QMessageBox::critical()严重错误警示确认选择框QMessageBox::question()二选一决策关于对话框QMessageBox::about()应用信息扩展版本信息框QMessageBox::aboutQt()Qt版本说明其典型调用案例1.显示信息提示框informationQMessageBox::information(this, 标题, 这是一个信息提示框);2.警告窗warningQMessageBox::warning(this,警告,这是一个警告框);3.错误框critialQMessageBox::critical(this,错误,出现了严重的错误);4.提问框questionint ret QMessageBox::question(nullptr, (MyNoteBook Notice:), (The document has been modified.\n Do you want to save your changes?), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, /*按钮的属性*/ QMessageBox::Save); /*默认按钮按下*/ switch (ret) { case QMessageBox::Save: qDebug()QMessageBox::Save; break; case QMessageBox::Discard: qDebug()QMessageBox::Discard; break; case QMessageBox::Cancel: qDebug()QMessageBox::Cancel; break; default: break; }其中按钮类型QMessage::StandardButton按钮枚举值显示内容QMessageBox::Ok确定QMessageBox::Cancel取消QMessageBox::Yes是QMessageBox::No否QMessageBox::Abort终止QMessageBox::Retry重试QMessageBox::Ignore忽略1.2 静态调用与实例化调用对比特性静态调用实例化调用语法形式QMessageBox::type(parent, ...)QMessageBox box; box.setXXX(...)定制能力仅支持预设按钮/图标支持完整UI定制线程阻塞自动模态显示需手动调用exec()典型场景快速实现简单提示复杂交互需求其中图标定制类型如下图标类型含 义QMessageBox::NoIcon无图标QMessageBox::Information信息图标ℹ️QMessageBox::Warning警告图标⚠QMessageBox::Critical错误图标❌QMessageBox::Question问号图标❓1.3 深度定制实现方案对话框的关键定制方法方法功能说明参数说明setWindowTitle()设置对话框标题QStringsetText()设置主提示文本QStringsetIconPixmap()设置自定义图标QPixmapaddButton()添加自定义按钮(QString, ButtonRole)setStyleSheet()应用CSS样式QString完整自定义示例#include QMessageBox #include QPushButton #include QDebug void showCustomMessageBox() { QMessageBox box; box.setWindowTitle(自定义对话框); box.setText(请确认操作); // 添加自定义按钮 QPushButton *confirmBtn box.addButton(确认, QMessageBox::AcceptRole); QPushButton *cancelBtn box.addButton(取消, QMessageBox::RejectRole); // 设置图标支持缩放 box.setIconPixmap(QPixmap(:/icons/warning.png).scaled(64, 64)); // 样式定制 box.setStyleSheet( QMessageBox { background-color: #f0f0f0; font-size: 14px; } QPushButton { min-width: 80px; min-height: 30px; } ); box.exec(); if (box.clickedButton() confirmBtn) { qDebug() 用户点击了确认; } else { qDebug() 用户点击了取消; } }1.4 高级应用场景动态内容切换void showDynamicMessage(bool isSuccess) { QMessageBox box; box.setWindowTitle(isSuccess ? 操作结果 : 错误提示); box.setText(isSuccess ? 操作成功完成 : 操作失败请重试); box.setIcon(isSuccess ? QMessageBox::Information : QMessageBox::Critical); box.exec(); }多语言支持void showLocalizedMessage(QLocale locale) { QMessageBox box; if (locale QLocale::Chinese) { box.setWindowTitle(提示); box.setText(确定要执行此操作吗); } else { box.setWindowTitle(Warning); box.setText(Are you sure to proceed?); } box.exec(); }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2477772.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!