当前位置: 首页 > news >正文

布局对话框

QColorDialog(颜色对话框)

QColorDialog 是 Qt 框架中标准的颜色选择对话框组件,隶属于 QDialog 子类,专为图形界面中选择颜色设计,支持跨平台(Windows/macOS/Linux)、原生系统样式适配、多颜色模式(RGB/HSV/CMYK)和 Alpha 透明度通道,是 Qt 界面开发中最常用的对话框之一。

静态方法 QColorDialog::getColor()(最常用)

Qt 封装了静态方法 getColor(),一键弹出模态颜色对话框,无需手动创建对象,返回选中的 QColor(用户取消则返回无效 QColor)。

QColor color = QColorDialog::getColor(Qt::red,this , "选择背景颜色");if(color.isValid()){frame->setPalette(QPalette(color));}

QFrontDialog(字体对话框)

QFontDialog 是 Qt 提供的标准字体选择对话框,隶属于 QDialog 子类,用于让用户选择字体(如宋体 / 微软雅黑)、字号(12/14/16px)、字体样式(粗体 / 斜体 / 下划线)、字符间距等,跨平台适配系统原生字体面板样式,是 Qt 界面中设置文本字体的核心组件。

静态方法 QFontDialog::getFont()(最常用)

一键弹出模态字体对话框,返回选中的 QFont,用户取消则返回无效字体

必须传指针,用于判断用户是否点击 “确定”(QColorDialog 用 isValid()QFontDialog布尔类型指针,这是核心区别)

void Dialog::dispFontFunc()
{bool ok;QFont font = QFontDialog::getFont(&ok);if(ok){lineEdit->setFont(font);}
}

QInputDialog(输入对话框)

QInputDialog 是 Qt Widgets 模块中封装度极高的 “即插即用” 输入对话框,本质是 Qt 对 “输入控件 + 对话框容器 + 交互逻辑” 的一层封装,核心目标是让开发者用最少的代码实现 “获取单个输入值” 的需求。

QInputDialog::getText()

static QString getText(QWidget *parent,                // 父窗口( nullptr 则居中屏幕)const QString &title,           // 对话框标题const QString &label,           // 输入提示文本QLineEdit::EchoMode echo = QLineEdit::Normal,  // 回显模式const QString &text = QString(),// 默认输入值bool *ok = nullptr,             // 确认状态指针Qt::WindowFlags flags = Qt::Widget,  // 窗口标志(如置顶、无边框)Qt::InputMethodHints inputMethodHints = Qt::ImhNone  // 输入法提示
);

QInputDialog::getInt()

static int getInt(QWidget *parent,const QString &title,const QString &label,int value = 0,                  // 默认值int minValue = -2147483647,     // 最小值(默认int最小值)int maxValue = 2147483647,      // 最大值(默认int最大值)int step = 1,                   // 步长(上下箭头/滚轮增量)bool *ok = nullptr,Qt::WindowFlags flags = Qt::Widget
);

QInputDialog::getDouble()

static double getDouble(QWidget *parent,const QString &title,const QString &label,double value = 0.0,             // 默认值double minValue = -2147483647.0,// 最小值double maxValue = 2147483647.0, // 最大值int decimals = 1,               // 显示的小数位数bool *ok = nullptr,Qt::WindowFlags flags = Qt::Widget
);

QInputDialog::getItem()

static QString getItem(QWidget *parent,const QString &title,const QString &label,const QStringList &items,       // 下拉选项列表int current = 0,                // 默认选中索引(从0开始)bool editable = true,           // 选项是否可编辑bool *ok = nullptr,Qt::WindowFlags flags = Qt::Widget,Qt::InputMethodHints inputMethodHints = Qt::ImhNone
);

 示例:

void Dialog::modifyStudentNoFunc()
{bool ok = false;QString str = QInputDialog::getText(this,"标准输入对话框","请输入学号:",QLineEdit::Normal,inputStudentNoLineEdit->text(),&ok);if(ok){qDebug() << str;inputStudentNoLineEdit->setText(str);}
}void Dialog::modifyStudentSexFunc()
{bool ok = false;QStringList lists;lists << "男" << "女";//往lists里添加元素QString sex = QInputDialog::getItem(this,"标准输入对话框","请选择性别:",lists,0,false,&ok);if(ok){inputStudentSexLineEdit->setText(sex);}
}void Dialog::modiffStudentScoreFunc()
{bool ok = false;double score = QInputDialog::getDouble(this,"标准输入对话框","请输入分数:",60,0,//初始值100,1,//步长&ok);if(ok){inputStudentScoreLineEdit->setText(QString::number(score, 'f', 3));}
}

 QMessageBox(消息对话框)

QMessageBox 是 Qt Widgets 模块中封装度极高的 “即插即用” 消息对话框类,专为快速展示提示、警告、错误、询问等消息设计,无需手动构建对话框 + 按钮 + 布局,是 Qt 开发中 “人机交互反馈” 的核心工具

常用的消息对话框;
QMessage::waring()

static StandardButton warning(QWidget *parent,const QString &title,const QString &text,StandardButtons buttons = Ok,StandardButton defaultButton = NoButton
);

QMessage::information()

static StandardButton information(QWidget *parent,                // 父窗口(nullptr 居中屏幕)const QString &title,           // 对话框标题const QString &text,            // 核心消息文本StandardButtons buttons = Ok,   // 显示的按钮(默认仅 OK)StandardButton defaultButton = NoButton  // 默认聚焦的按钮
);

QMessage::critical()

static StandardButton critical(QWidget *parent,const QString &title,const QString &text,StandardButtons buttons = Ok,StandardButton defaultButton = NoButton
);

 自定义消息对话框

void Dialog::customMeg()
{QMessageBox messbox;//创建对话框messbox.setWindowTitle("自定义消息框");//设置对话框标题QPushButton *yes = messbox.addButton("确认", QMessageBox::YesRole); //增加按钮QPushButton *no = messbox.addButton("取消", QMessageBox::ActionRole);messbox.exec();//启动对话框//判断点击类型if(messbox.clickedButton() == yes){qDebug() << "我点击了yes";}
}

 

http://www.jsqmd.com/news/139529/

相关文章:

  • HTTP安全攻防:常见漏洞原理与防护措施(附练习题)
  • TCP\IP和https流程
  • 基于Comsol的高坝应力渗流耦合三维分析探索
  • HTTP核心头字段记忆口诀
  • zszsbd
  • 实用指南:天机学堂day09学习
  • hot100 142.环形链表Ⅱ
  • 2025.12.25作业
  • 探寻电池精品定制之路,聚电新能源引领行业新高度
  • 0x3f第13天复习 (12:40-17:45)
  • VMware Workstation 挂载共享文件夹
  • 人工智能通识作业
  • 2025论文神器终极榜单:7款工具带真实参考文献,查重低原创高!
  • 【毕业设计】基于springboot的学院失物招领平台的设计与实现(源码+文档+远程调试,全bao定制等)
  • 汉诺塔递归函数,农夫抓牛问题,数字金字塔最大路径和问题
  • 深入浅出理解Spring Boot中的依赖注入
  • 人工智能作业--光的折射
  • 口碑佳且可个性化定制的丁基胶带供应商推荐
  • 超强Python/C++界面类生成工具CodeGenor之项目结构生成
  • Web项目完整部署指南
  • 深入浅出 HarmonyOS NEXT (迈向 6.0 架构):攻克 ArkTS 高性能状态管理与 NAPI 底层交互难题
  • 光的折射模拟器(斯涅尔定律演示)
  • 【拯救HMI】工业HMI的软件组成:从系统到功能,新手该懂的“软件骨架”
  • 57页精品PPT | 工业互联网平台赋能制造业数字化转型解决方案
  • 汉诺塔问题
  • Fiddler抓包工具与HTTP连接优化笔记
  • AI 助力编程:三大算法题的代码生成与测试全流程记录
  • 2025涂塑钢管厂家推荐排行榜:从产能到质量全方位对比 - 爱采购寻源宝典
  • https基本知识点
  • fiddler的一些使用步骤