Qt应用开发(基础篇)——QComboBox

目录

一、前言      

二、属性和方法

三、信号

四:QFontComboBox


一、前言      

         QComboBox继承于QWidget,作为Qt Wdiget常用的控件,在实际开发中,经常用来作为某些特定参数属性的选择,比如语言国家字体主题模式串口号波特率等选择性已知需要下拉的场景。

        QComboBox是一种显示列表选项的控件,占用屏幕最小。列表内容可以是图像或者字符串,列表内容可以是固定也可以是可编辑的。在应用中可随时做插入删除的动态操作,通过信号获取状态的改变。

二、属性和方法

1、count属性保存当前下拉列表的总条数,没有则是0。

 int count() const //当前下拉列表总条数

2、currentIndex属性保存当前列表的显示下标,从0开始。如果下拉框是空的,那么此值为-1。

int currentIndex() const            //当前下拉框显示的列表值的下标
void setCurrentIndex(int index)     //设置下拉框显示的列表值的下标

 3、currentText属性保存当前显示的文本。

QString currentText() const                //返回当前显示的文本
void setCurrentText(const QString &text)   //设置当前显示的文本

4、duplicatesEnabled属性保存是否列表插入重复的数据,默认为false。

bool duplicatesEnabled() const           //获取是否可以插入重复项
void setDuplicatesEnabled(bool enable)   //设置是否可以插入重复项

5、editable属性保存是否可编辑,默认值为false。

 bool isEditable() const            //获取是否可编辑void setEditable(bool editable)    //设置是否可编辑

6、frame属性保存下拉框是否使用边框绘制。

bool hasFrame() const    //获取是否有边框
void setFrame(bool)      //设置是否有边框

7、iconSize属性保存组合框显示的图标大小,添加列表项的时候可以同时设置icon路径。

QSize iconSize() const        //获取图标尺寸
void setIconSize(const QSize &size)    //设置图标尺寸
void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())    //添加列表项,显示文本和自定义数据
QIcon itemIcon(int index) const    //获取图标

8、insertPolicy属性保存组合框插入策略,默认新插入的为最后一项。

QComboBox::InsertPolicy insertPolicy() const           //获取插入策略
void setInsertPolicy(QComboBox::InsertPolicy policy)    //设置插入策略1) QComboBox::NoInsert                //不会被插入
2) QComboBox::InsertAtTop             //当做第一项插入
3) QComboBox::InsertAtCurrent         //当前项被替换
4) QComboBox::InsertAtBottom          //当做最后一项插入
5) QComboBox::InsertAfterCurrent      //插入到当前项之后
6) QComboBox::InsertBeforeCurrent     //插入到当前项之前
7) QComboBox::InsertAlphabetically    //字符串按照字母顺序插入到组合框中

9、maxCount保存组合框下拉列表最大支持条数。

 int maxCount() const            //获取最大条数void setMaxCount(int max)       //设置最大条数

10、maxVisibleItems保存屏幕下拉显示的最大条数,默认10条。

int maxVisibleItems() const          //获取显示最大条数
void setMaxVisibleItems(int maxItems)//设置显示最大条数

11、minimumContentsLength属性保存组合框中应容纳的最小字符数,默认为0。

int minimumContentsLength() const                //获取最小字符数
void setMinimumContentsLength(int characters)    //设置最小字符数

12、sizeAdjustPolicy属性保存尺寸调整策略,出于性能考虑,大模型才考虑使用此方法。

QComboBox::SizeAdjustPolicy sizeAdjustPolicy() const    //获取策略
void setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) //设置策略
1) QComboBox::AdjustToContents             //组合框将始终根据内容进行调整
2) QComboBox::AdjustToContentsOnFirstShow  //组合框将在第一次显示时调整到它的内容。
3) QComboBox::AdjustToMinimumContentsLengthWithIcon //组合框将调整到最小宽度加图标距离

13、userData下拉表项绑定自定义数据。

void addItem(const QString &text, const QVariant &userData = QVariant()) //插入一列,可选是否附带自定义数据
int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags>(Qt::MatchExactly|Qt::MatchCaseSensitive)) const  //根据自定义数据查找
int findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const //根据列表文本查找

        在实际应用中,给每一项添加自定义数据是很常用的,比如需要显示各个国家的下拉框,分别有中国、美国、英国。他们代表的值分别为5、6、7,就需要addItem的时候绑定每个文本代表的自定义数据值,当我们从通讯得到了6,通过findData去找到绑定的数据得到下标,从而让下拉框显示美国。

QComboBox *box = new QComboBox(this);
box->addItem("中国",5);
box->addItem("美国",6);
box->addItem("英国",7);
int idx = box->findData(6);
box->setCurrentIndex(idx);

三、信号

        实际应用中,我们会需要根据下拉项的变化做一些联动或者数据上的改变,信号获取由文本变化currentTextChanged或者currentIndexChanged来相应处理,当你需要区分是否是用户主动选择改变则使用activated和textActivated。

信号: 
void activated(int index)                    //用户主动改变当前项触发
void textActivated(const QString &text)      //用户主动改变当前项触发
void currentTextChanged(const QString &text) //当前文本改变同步触发此信号
void currentIndexChanged(int index)          //当下标改变的时候此信号同步触发
void editTextChanged(const QString &text)    //编辑模式下内容改变触发
void highlighted(int index)                  //用户改变高亮项触发

四:QFontComboBox

        QFontComboBox使用按字母顺序排列的字体系列名称列表填充,例如Arial、Helvetica和Times New Roman。有一些字体会直接按字体显示,对于Symbol之类的字体,其名称无法在字体本身中表示,则在家族名称旁边显示该字体的示例。

        

        QFontComboBox通常用于工具栏,与QComboBox一起用于控制字体大小,两个QToolButton或者QCheckBox用于控制粗体和斜体。

1、currentFont属性控制当前显示的字体,返回QFont。当用户选择新的字体时,除了currentIndexChanged()之外,还会发出currentFontChanged()信号

QFont currentFont() const              //获取当前字体
void setCurrentFont(const QFont &f)    //设置当前字体

2、fontFilters属性保存要过滤的字体,调用setFontFilters()来过滤掉某些不想要的字体。

QFontComboBox::FontFilters fontFilters() const
void setFontFilters(QFontComboBox::FontFilters filters)
  • QFontComboBox::AllFonts                          显示所有字体
  • QFontComboBox::ScalableFonts                显示可缩放字体
  • QFontComboBox::NonScalableFonts         显示不可伸缩字体
  • QFontComboBox::MonospacedFonts         显示等宽字体
  • QFontComboBox::ProportionalFonts          显示比例字体

  3、writingSystem属性保存显示支持给定书写系统的字体。默认QFontDatabase:Any

QFontDatabase::WritingSystem writingSystem() const
void setWritingSystem(QFontDatabase::WritingSystem)
  • QFontDatabase::Any
  • QFontDatabase::Latin
  • QFontDatabase::Greek
  • QFontDatabase::Cyrillic
  • QFontDatabase::Armenian
  • QFontDatabase::Hebrew
  • QFontDatabase::Arabic
  • QFontDatabase::Syriac
  • QFontDatabase::Thaana
  • QFontDatabase::Devanagari
  • QFontDatabase::Bengali
  • QFontDatabase::Gurmukhi
  • QFontDatabase::Gujarati
  • QFontDatabase::Oriya
  • QFontDatabase::Tamil
  • QFontDatabase::Telugu
  • QFontDatabase::Kannada
  • QFontDatabase::Malayalam
  • QFontDatabase::Sinhala
  • QFontDatabase::Thai
  • QFontDatabase::Lao
  • QFontDatabase::Tibetan
  • QFontDatabase::Myanmar
  • QFontDatabase::Georgian
  • QFontDatabase::Khmer
  • QFontDatabase::SimplifiedChinese
  • QFontDatabase::TraditionalChinese
  • QFontDatabase::Japanese
  • QFontDatabase::Korean
  • QFontDatabase::Vietnamese
  • QFontDatabase::Symbol
  • QFontDatabase::OtherSymbol
  • QFontDatabase::Ogham
  • QFontDatabase::Runic
  • QFontDatabase::Nko

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Rust笔记】意译解构 Object Safety for trait

意译解构Object Safety for trait 借助【虚表vtable】对被调用成员函数【运行时内存寻址】的作法允许系统编程语言Rust模仿出OOP高级计算机语言才具备的【专用多态Ad-hoc Polymorphism】特性。 计算机高级语言中的“多态”术语是一个泛指。它通常可被细化为 基于继承关系的“子…

配置IPv6 over IPv4 GRE隧道示例

组网需求 如图1&#xff0c;两个IPv6网络分别通过SwitchA和SwitchC与IPv4公网中的SwitchB连接&#xff0c;客户希望两个IPv6网络中的PC1和PC2实现互通。 其中PC1和PC2上分别指定SwitchA和SwitchC为自己的缺省网关。 图1 配置IPv6 over IPv4 GRE隧道组网图 配置思路 要实现I…

Flyway——修改表名称与序列名称

文章目录 前言脚本修改表名称修改序列 前言 开发中一次偶然的机会&#xff0c;Oracle 12c 更换为 11g &#xff0c;需要对表名称的长度和序列长度做限制要求。 11g相对12c而言&#xff0c;表名称与序列名称的长度&#xff0c;不能超过30个字符。 在开发中做了更改&#xff0c;…

Tinkercad 建模21个小技巧

21个Tinkercad 建模小技巧 原文 参考文章&#xff1a;在 Tinkercad 中加快设计的 22 个技巧 一起来了解一下21个Tinkercad 3D建模小技巧&#xff0c;让你快人一步。 技巧1 Copy & Paste 文件&#xff0c;整合设计 想把文件A里面的模型拷贝到文件B里面&#xff1f; 很容…

找不到Windows SDK版本 10.0.18362.0.请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决

找不到Windows SDK版本 10.0.18362.0.请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决 安装相应的组件 项目——重定目标解决方案——然后选择版本

商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

&#xfeff; 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Re…

【软件安装】MATLAB_R2021b for mac 安装

Mac matlab_r2021b 安装 下载链接&#xff1a;百度网盘 下载链接中所有文件备用。 我所使用的电脑配置&#xff1a; Macbook Pro M1 Pro 16512 系统 macOS 13.5 安装步骤 前置准备 无此选项者&#xff0c;自行百度 “mac 任何来源”。 1 下载好「MATLAB R2021b」安装文…

Jetson Nano之ROS入门 -- YOLO目标检测与定位

文章目录 前言一、yolo板端部署推理二、目标深度测距三、目标方位解算与导航点设定1、相机成像原理2、Python实现目标定位 总结 前言 Darknet_ros是一个基于ROS&#xff08;机器人操作系统&#xff09;的开源深度学习框架&#xff0c;它使用YOLO算法进行目标检测和识别。YOLO算…

代理模式:控制访问的设计模式

代理模式&#xff1a;控制访问的设计模式 什么是代理模式&#xff1f; 代理模式是一种常见的设计模式&#xff0c;它允许通过代理对象来控制对真实对象的访问。代理模式的主要目的是在不改变原始对象的情况下&#xff0c;提供额外的功能或控制访问。 为什么要使用代理模式&a…

2023年Q2京东环境电器市场数据分析(京东数据产品)

今年Q2&#xff0c;环境电器市场中不少类目表现亮眼&#xff0c;尤其是以净水器、空气净化器、除湿机等为代表的环境健康电器。此外&#xff0c;像冷风扇这类具有强季节性特征的电器也呈现出比较好的增长态势。 接下来&#xff0c;结合具体数据我们一起来分析Q2环境电器市场中…

所有流的知识都有,IO流原理及流的分类

1、Java IO流原理 I/O是Input/Output的缩写&#xff0c; I/O技术是非常实用的技术&#xff0c;用于处理设备之间的数据传输。如读/写文件&#xff0c;网络通讯等。 Java程序中&#xff0c;对于数据的输入/输出操作以”流(stream)” 的方式进行。java.io包下提供了各种“流”类…

微信小程序监测版本更新

在index.js里面 不放到app.js里面是因为有登录页面&#xff0c;在登录页面显示更新不太友好 onShow() {const updateManager wx.getUpdateManager()// 请求完新版本信息的回调updateManager.onCheckForUpdate(res > {if (res.hasUpdate) {// 新版本下载成功updateManage…

【JavaEE初阶】Servlet (二) Servlet中常用的API

文章目录 HttpServlet核心方法 HttpServletRequest核心方法 HttpServletResponse核心方法 Servlet中常用的API有以下三个: HttpServletHttpServletRequestHttpServletResponse HttpServlet 我们写 Servlet 代码的时候, 首先第一步就是先创建类, 继承自 HttpServlet, 并重写其…

以科技创新引领短交通行业发展,九号公司重磅新品亮相巴塞罗那MWC

2月27日&#xff0c;以“时不我待(VELOCITY) - 明日科技&#xff0c;将至已至”为主题的2023世界移动通信大会&#xff08;Mobile World Congress&#xff0c;以下简称MWC&#xff09;在西班牙巴塞罗那举办&#xff0c;全球创新短交通领军企业九号公司参加了大会。现场&#xf…

2023年FPGA好就业吗?

FPGA岗位有哪些&#xff1f; 从芯片设计流程来看&#xff0c;FPGA岗位可以分四类 产品开发期&#xff1a;FPGA系统架构师 芯片设计期&#xff1a;数字IC设计工程师、FPGA开发工程师 芯片流片期&#xff1a;FPGA验证工程师 产品维护期&#xff1a;FAE工程师 从行业上来说&#x…

6、Kubernetes核心技术 - Pod

目录 一、概述 二、Pod机制 2.1、共享网络 2.2、共享存储 三、Pod资源清单 四、 Pod 的分类 五、Pod阶段 六、Pod 镜像拉取策略 ImagePullBackOff 七、Pod 资源限制 八、容器重启策略 一、概述 Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。P…

时序预测 | Python实现NARX-DNN空气质量预测

时序预测 | Python实现NARX-DNN空气质量预测 目录 时序预测 | Python实现NARX-DNN空气质量预测效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 时序预测 | Python实现NARX-DNN空气质量预测 研究内容 Python实现NARX-DNN空气质量预测,使用深度神经网络对比利时空气…

基于51单片机和proteus的加热洗手器系统设计

此系统是基于51单片机和proteus的仿真设计&#xff0c;功能如下&#xff1a; 1. 检测到人手后开启出水及加热。 2. LED指示加热出水及系统运行状态。 功能框图如下&#xff1a; Proteus仿真界面如下&#xff1a; 下面就各个模块逐一介绍&#xff0c; 模拟人手检测模块 通过…

mysql 非definer用户如何查看存储过程定义

当我们创建存储过程时&#xff0c;如果没有显示指定definer&#xff0c;则会默认当前用户为该sp的definer&#xff0c;如果没有相关授权&#xff0c;则其他用户是看不了这个sp的。 比如用户zhenxi1拥有如下权限&#xff1a; 它拥有对dev_nacos库的查询权限&#xff0c;这个时候…

Xamarin.Android实现加载中的效果

目录 1、说明2、代码如下2.1 图1的代码2.1.1、创建一个Activity或者Fragment&#xff0c;如下&#xff1a;2.1.2、创建Layout2.1.3、如何使用 2.2 图2的代码 4、其他补充4.1 C#与Java中的匿名类4.2 、其他知识点 5、参考资料 1、说明 在实际使用过程中&#xff0c;常常会用到点…