当前位置:网站首页>Qt | 控件之 QComboBox
Qt | 控件之 QComboBox
2022-08-02 14:41:00 【华为云】
QComboBox 是下拉列表组件类,它提供一个下拉列表供用户选择,也可以直接当做一个 QLineEdit 用作输入。用户点击控件后,可以从出现的下拉菜单中选择一项。QComboBox 除了显示可见下拉列表外,每个 item(列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。
QVariant 可以存储各种数据类型,类似于 C++联合(union)数据类型,它不仅能够保存很多 Qt 类型的值,包括 QColor,QBrush,QFont,QPen,QString 和 QSize 等,也能够存放 Qt 的容器类型的值。
头文件: #include<QComboBox>
创建方式:
静态方式:直接从工具箱中拖拉复选框控件的方式,不需要手动添加头文件,Qt Creator 会自动添加;
动态方式:通过 new 创建复选框的方式,需要我们通过代码来手动添加头文件。
动态方式创建:QComboBox combo = new ComboBox(this);
设置样式:
setStyleSheet();
如果只是简单的创建一个 QComboBox,对它显示的样式没有要求,就可以用系统的样式,不需要自己手动进行设置,但是如果为了界面美化需要设置样式表,可以使用 setStyleSheet()函数对 QComboBox 的样式进行设置。
/* 未下拉时 /
"QComboBox {border:1px solid #eeeeee;border-radius:4px;
padding:1px 18px 1px 50px; background:#ffffff;
font-size:14px;color:#333333;font-family:Microsoft YaHei UI;}
QComboBox:checked {border:1px solid #069aae;}//下拉后,整个下拉窗体样式
QComboBox QAbstractItemView{outline: 0px solid gray;//选定项的虚线框
border:1px solid #eeeeee;//整个下拉窗体的边框
color:#333333;font-size:14px;font-family:Microsoft YaHei UI;
background-color: #ffffff;//整个下拉窗体的背景色
selection-color:#333333;selection-background-color:#f1f8ff;}//被选中的背景色
/ 下拉箭头样式 */
QComboBox::drop-down {subcontrol-origin: padding;subcontrol-position: top right;
width: 16px;
border-left: 0px solid darkgray;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;}
QComboBox::down-arrow {image:url(:/image/gdt_xx_n.png); padding-right: 10px;}
QComboBox::down-arrow:on {image:url(:/image/gdt_xs_n.png); padding-right: 10px;}";
添加项:
addItem();//添加一个列表项
带图标:combo->addItem(QIcon(:/image/Henan.png), “Henan”);
不带图标:combo->addItem(“Henan”);
addItems();//只是添加字符串列表项,而且数据来源于一个 QStringList 变量
QStringList strList;
strList<<“Henan”<<“ShanDong”<<“FuJian”<<“TianJin”;
combo->addItems(strList);
访问项:
int currentIndex();//返回当前项的序号,第一个项的序号为 0。
QString currentText();//返回当前项的文字。
QVariant currentData(int role = Qt::UserRole);//返回当前项的关联数据,数据的缺省角色为 role=Qt::UserRole(可以自定义的数据)。
QString itemText(int index);//返回指定索引号的项的文字。
QVariant itemData(int index, int role = Qt::UserRole);//返回指定索引号的项的关联数据。
int count();//返回项的个数。
删除项:
remove(int index);//通过索引值删除项目
信号:
void currentIndexChanged(int index);
void currentIndexChanged(const QString &text);
这两个信号只是传递的参数不同,一个传递的是当前项的索引号,一个传递的是当前项的文字。可以根据自己的实际情况选择合适的使用。
边栏推荐
猜你喜欢
ShardingSphere基本介绍及核心概念
2022 VMware下载安装教程
基于ip的证书
中科驭数等单位牵头发布行业首部DPU评测方法技术白皮书
this beta version of Typora is expired, please download and install a newer version.Typora的保姆级最新解决方法
基于mobileNet实现狗的品种分类(迁移学习)
2022-07-21 第六小组 瞒春 学习笔记
【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
IDO预售DAPP系统开发(NFT挖矿)
Servlet基础详解
随机推荐
2022-07-18 第五小组 瞒春 学习笔记
阅读,是最便宜的高贵
2022-07-27 第六小组 瞒春 学习笔记
中国服装行业已形成一套完整的产业体系
MySQL语法入门
第三章-函数的增长-3.1-渐近记号
容器中的Cgroup
PAT Grade A 1143 Lowest Common Ancestor
MySQL----多表查询
MySQL 高级(进阶) SQL 语句 (一)
Redis最新6.27安装配置笔记及安装和常用命令快速上手复习指南
【Untitled】
(数学基础)第三章-3.2-标准记号和常用函数
PAT Class A 1019 Common Palindrome Numbers
【无标题】
【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
第四章-4.1-最大子数组问题
2022年低压电工考试试题及在线模拟考试
Reading is the cheapest and noblest
leetcode 504. Base 7 七进制数 (简单)