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

QT6中Combo Box与Combo BoxFont 功能及用法

一.QComboBox(通用下拉组合框)

1.核心功能与特点

QComboBox 是 “下拉列表 + 输入框” 的组合控件,支持两种模式:

非编辑模式:用户只能从下拉列表中选择预设选项(默认模式);

编辑模式:用户可直接在输入框中输入内容,或从下拉列表选择。

其核心能力包括:

动态添加 / 删除下拉项(支持文本、图标、自定义控件);

设置默认选中项、禁用特定项;

响应选中项变化、编辑内容变化等事件;

支持分组显示下拉项(通过 QStandardItemModel 实现)。

2.QComboBox 代码示例

    // 创建 ComboBox

    QComboBox *comboBox = new QComboBox(this);

    comboBox->setWindowTitle("QComboBox Example");

    comboBox->resize(300, 30);

    // 添加单项

    comboBox->addItem("Option 1","北京");  //"北京" 类似注释,但程序可以读取

    comboBox->addItem("Option 2","天津");

    comboBox->addItem("Option 3","上海");

    // 或者使用 addItems 批量添加

    QStringList items;

    items << "Red" << "Green" << "Blue";

    comboBox->addItems(items);

    // 连接信号:当选项改变时触发

    QObject::connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),

                     [=](int index) {

                         qDebug() << "Selected index:" << index << ", Text:" << comboBox->itemText(index);

                     });

    qDebug() <<"打印1:"<<comboBox->itemText(0)<<comboBox->itemData(0).toString();

    qDebug() <<"打印2:"<<comboBox->itemText(1)<<comboBox->itemData(1).toString();

    

3.说明   

(1)comboBox->addItem("Option 1","北京");  //"北京" 类似注释,但程序可以读取

     但designer界面模式没有此功能

(2)cityComboBox->addItem(QIcon(":/icons/beijing.png"), "北京", "中国首都,政治文化中心");  //向下拉框添加项(部分带图标)

     designer界面模式下,属性中可以直接选择自带的图标

     

二.QFontComboBox(字体下拉组合框)

1.核心功能与特点

QFontComboBox 是 QComboBox 的子类,专门用于字体选择,无需手动添加字体列表 —— 它会自动加载系统中已安装的字体,并以 “字体名称 + 示例文本” 的形式显示,核心特点:

自动枚举系统字体,支持过滤(如仅显示等宽字体、中文字体);

选中字体后可直接获取 QFont 对象(包含字体名称、大小、样式);

支持设置 “示例文本”(默认显示 “Abc”,可自定义为中文如 “字体示例”);

继承 QComboBox 的所有功能(如可编辑、信号槽)。

2.常用字体过滤规则

QFontComboBox::AllFonts:显示所有字体(默认);

QFontComboBox::ScalableFonts:仅显示可缩放字体;

QFontComboBox::NonScalableFonts:仅显示不可缩放字体;

QFontComboBox::MonospacedFonts:仅显示等宽字体(如 Consolas、Courier New);

QFontComboBox::ProportionalFonts:仅显示比例字体(如宋体、Arial)。

3.代码示例

    // 创建 FontComboBox

    QFontComboBox *fontCombo = new QFontComboBox(this);

    // 设置字体过滤器:只显示可缩放字体

    fontCombo->setFontFilters(QFontComboBox::AllFonts); // 可选设置

    // 也可设置为其他过滤器,如 QFontComboBox::AllFonts, QFontComboBox::MonospacedFonts 等

    fontCombo->setGeometry(50, 200, 200, 30);

    // 创建一个标签来显示字体效果

    QLabel *label = new QLabel(this);

    label->setText("Hello, Qt 6!");

    label->setAlignment(Qt::AlignLeft);

    label->setGeometry(50, 100, 200, 50);

    // 连接信号:当字体改变时更新标签字体

    QObject::connect(fontCombo, &QFontComboBox::currentFontChanged,

                     [=](const QFont &font) {

                         // 设置新字体,可以同时设置点大小等属性

                         QFont newFont = font;

                         newFont.setPointSize(20); // 设置字体大小

                         label->setFont(newFont);

                         qDebug() << "Current font:" << font.family();

                     });

    resize(800, 600);

三.应用场景总结

当需要用户选择 “自定义选项”(如性别、部门、文件类型)时,用 QComboBox;

当需要用户选择 “字体”(如文本编辑器的字体设置、报表设计的字体配置)时,用 QFontComboBox(无需手动维护字体列表,效率更高)。

http://www.dtcms.com/a/478178.html

相关文章:

  • 软考网工知识点-1
  • win10下Qt应用程序使用FastDDS
  • 链表相关的知识以及算法题
  • 模板网站建站步骤微信公众号和小程序的区别
  • Shell 使用指南
  • 重庆网站seo服务没效果
  • 开源项目重构我们应该怎么做-以 SQL 血缘系统开源项目为例
  • Sora2:AIGC的技术革命与生态重构
  • Modbus RTU 数据结构(发送和返回/读/写)
  • Nginx IP 透传
  • 海外IP的主要应用业务
  • 门户网站建设工序做微信网站要多少钱
  • 南阳网站优化费用推进网站 集约化建设
  • 算法训练之BFS实现FloodFill算法
  • Typescript - 枚举类型 enum,详细介绍与使用教程(快速入门)
  • 机器视觉2D贴合引导项目从哪里入手,案例知识分享
  • 家庭烹饪用油选择
  • 「工具设计」JS字段信息加密解密工具设计
  • 注意力机制-10.1.3注意力可视化
  • 网站维护公司苏州网站推广优化
  • Codeforces Educational 183(ABCD)
  • 为什么建设网站要年年交钱石家庄最新今天消息
  • 2025年语音识别(ASR)与语音合成(TTS)技术趋势分析对比
  • TortoiseSVN-1.8.10.26129-x64-svn-1.8.11.msi
  • 鸿蒙NEXT应用接入快捷栏:一键直达,提升用户体验
  • 前端接EXCEL
  • 深圳企业网站建设推荐公司网站开发的方法
  • 网站建设 价格wordpress管理员改为投稿者
  • 2025程序综合实践第三次DFS2
  • 记录一次前端文件缓存问题