Qt QComboBox详解
下拉框是一个组合控件(包含一个文本显示控件和一个按钮)。
一、设计器编辑
二、信号函数
- void editTextChanged(const QString &); 只有用户编辑时,内容改变时触发。
- void activated(int index); 用户选中下拉列表某一项触发,编辑和代码改变索引时不会触发。
- void activated(const QString &);
- void highlighted(int index); 高亮时被触发,就是鼠标移动到某个下拉项时。
- void highlighted(const QString &);
- void currentIndexChanged(int index); 改变当前索引触发,包括代码里设置索引
- void currentIndexChanged(const QString &);
- void currentTextChanged(const QString &);改变当前编辑框内容和选择下拉框选项时触发
三、常用操作
1. 增加
- void addItem(const QString &text, const QVariant &userData = QVariant()); //一次添加一个下拉项,默认在尾部添加。
- void addItem(const QIcon &icon, const QString &text,const QVariant &userData = QVariant());一次添加一个下拉项,且带有图标,默认在尾部添加。
- void addItems(const QStringList &texts);一次添加多个下拉项
2. 删除
- void removeItem(int index); 删除指定索引的下拉项。
- void clear(); 清除当前编辑框内容和所有下拉列表项。
- void clearEditText(); 清除当前编辑框内容,但是不清除下拉选项列表。
3. 插入
- void insertItem(int index, const QString &text, const QVariant &userData = QVariant());
- void insertItem(int index, const QIcon &icon, const QString &text,
const QVariant &userData = QVariant()); - void insertItems(int index, const QStringList &texts);
4. 其他常用方法
int currentIndex() const; 返回当前索引
QString currentText() const; 返回当前文本
QVariant currentData(int role = Qt::UserRole) const; 返回当前用户自定义数据
QString itemText(int index) const;返回当前索引对应的文本
QIcon itemIcon(int index) const; 返回当前索引对应的图标
QVariant itemData(int index, int role = Qt::UserRole) const; 返回当前索引对应的用户自定义数据
Qt QVariant详细用法参考博客:Qt QVariant详细用法
5.完整代码演示
struct MyType
{int x = 0;int y = 0;
};
Q_DECLARE_METATYPE(MyType) //注册,必不可少QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent): QWidget(parent)
{ui.setupUi(this);ui.comboBox->clear(); //清除编辑编辑框和和下拉列表的数据QVariant var;MyType myType;myType.x = 250;var.setValue(myType);ui.comboBox->addItem("ComboBox001",var);ui.comboBox->addItem("ComboBox002");ui.comboBox->addItem(QIcon(":/QtWidgetsApplication1/Resources/timg.gif"), "ComboBox003");QStringList list = { "ComboBox004","ComboBox005" };ui.comboBox->addItems(list);ui.comboBox->insertItem(1, "Insert");void (QComboBox::*p)(const QString &) = &QComboBox::highlighted;connect(ui.comboBox, p, [=](const QString &text) {//QVariant var = ui.comboBox->itemData(index);访问用户自定义数据//qDebug() << var.value<MyType>().x << endl;//qDebug() << ui.comboBox->currentText() << endl;qDebug() << text << endl;});
}
四、设置样式
Qt样式表(QComboBox下拉框)
Qt QComboBox详解相关推荐
- Qt Phonon详解
Qt Phonon详解(转帖) 前言 Phonon严格来说其实非为Qt的library,Phonon原本就是KDE 4的开放原始码多媒体API,後来与Qt合并与开发,所以简单来说就是Qt使用Phono ...
- Qt QSqlQueryModel详解
1.功能概述 QSqlQueryModel是QSqlTableModel的父类.QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只 ...
- Qt MetaObject 详解
这个系列的几篇文章通过阅读Qt帮助文档和相关的源代码来学习研究Qt meta-object所提供的功能,及其实现的方式. Qt meta-object系统基于三个方面: 1.QObject提供一个基类 ...
- Qt QTabWidget详解
1.常用API //添加 int addTab(QWidget *page, const QString &label)//设置tab位置 void setTabPosition(QTabWi ...
- 《Qt 数据库详解》博客系列文章
本文章原创于www.yafeilinux.com 转载请注明出处. 由于该系列文章图床都挂了,特下载原文博客的word版. 详细博客请点附件下载. 21-Qt数据库(一)简介 22-Qt数据库(二)添 ...
- Qt QTreeWidget 详解
Qt系列文章目录 文章目录 Qt系列文章目录 前言 主要API 示例 1.头文件: 2.实现文件 二.源码下载 前言 官方文档 QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与 ...
- Qt QList详解
1.QList是一种表示链表的模板类. 2.QList是Qt的一种泛型容器类.它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作. 3.QList.QLinkedList ...
- Qt MetaObject 详解之二:QMeta数据以及数据结构信息
如果一个类的声明中包含Q_OBJECT宏,那么qmake将为这个类生成 meta信息,这个信息在前一篇中所提到的moc文件中.这一篇通过解析这个一个示例moc文件来阐述这些meta信息的存储方式和格式 ...
- Qt QVector 详解:从底层原理到高级用法
目录标题 引言:QVector的重要性与简介 QVector的常用接口 QVector和std::Vector 迭代器:遍历QVector 中的元素(Iterators: Traversing Ele ...
- VS中使用Qt方法详解
在 Qt Creator 中可以使用 MSVC 编译工具对 Qt 项目进行编译.若有人比较习惯于使用 Visual Studio,或某些项目必须使用 Visual Studio,也可以在 Visual ...
最新文章
- php 清除之前echo_PHP入门读书笔记(三): 常量和变量
- leetcode算法题--二分查找
- 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
- 这 30 个常用的 Maven 命令你必须熟悉!
- 全球与中国终端天线市场发展战略与运营规划分析报告
- 【若依(ruoyi)】layui upload
- TensorLayer MNIST
- 自动关机脚本2007-10-28 10:04@ECHO off
- python import request 不报错_爬虫学习路径整理及安装环境遇到的坑
- 如何给 Chrome 开发者工具设置 Material Design 风格的主题外观
- js的client、scroll、offset详解与兼容性
- sklearn 特征降维利器 —— PCA TSNE
- 「每天一道面试题」对象和GC Roots引用链没连接时一定会被回收吗
- 【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】
- 使用pyserial开发的一个串口调试工具
- vscode配置esp32开发环境:ESP-IDF VS Code Extension 没有 Using Existing Setup
- 计算器软件设计和计算机软件设计区别,基于LabVIEW的计算器程序设计
- Android应用测速组件实现原理,这篇看完还不懂跟我去摆地摊,全网首发
- 手机html怎样取消,手机怎么取消wifi隐藏_手机如何取消隐藏wifi?-192路由网
- python作用域的理解-python中对变量的作用域LEGB、闭包、装饰器基本理解