下拉框是一个组合控件(包含一个文本显示控件和一个按钮)。

一、设计器编辑

二、信号函数

  • 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详解相关推荐

  1. Qt Phonon详解

    Qt Phonon详解(转帖) 前言 Phonon严格来说其实非为Qt的library,Phonon原本就是KDE 4的开放原始码多媒体API,後来与Qt合并与开发,所以简单来说就是Qt使用Phono ...

  2. Qt QSqlQueryModel详解

    1.功能概述 QSqlQueryModel是QSqlTableModel的父类.QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只 ...

  3. Qt MetaObject 详解

    这个系列的几篇文章通过阅读Qt帮助文档和相关的源代码来学习研究Qt meta-object所提供的功能,及其实现的方式. Qt meta-object系统基于三个方面: 1.QObject提供一个基类 ...

  4. Qt QTabWidget详解

    1.常用API //添加 int addTab(QWidget *page, const QString &label)//设置tab位置 void setTabPosition(QTabWi ...

  5. 《Qt 数据库详解》博客系列文章

    本文章原创于www.yafeilinux.com 转载请注明出处. 由于该系列文章图床都挂了,特下载原文博客的word版. 详细博客请点附件下载. 21-Qt数据库(一)简介 22-Qt数据库(二)添 ...

  6. Qt QTreeWidget 详解

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 主要API 示例 1.头文件: 2.实现文件 二.源码下载 前言 官方文档 QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与 ...

  7. Qt QList详解

    1.QList是一种表示链表的模板类. 2.QList是Qt的一种泛型容器类.它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作. 3.QList.QLinkedList ...

  8. Qt MetaObject 详解之二:QMeta数据以及数据结构信息

    如果一个类的声明中包含Q_OBJECT宏,那么qmake将为这个类生成 meta信息,这个信息在前一篇中所提到的moc文件中.这一篇通过解析这个一个示例moc文件来阐述这些meta信息的存储方式和格式 ...

  9. Qt QVector 详解:从底层原理到高级用法

    目录标题 引言:QVector的重要性与简介 QVector的常用接口 QVector和std::Vector 迭代器:遍历QVector 中的元素(Iterators: Traversing Ele ...

  10. VS中使用Qt方法详解

    在 Qt Creator 中可以使用 MSVC 编译工具对 Qt 项目进行编译.若有人比较习惯于使用 Visual Studio,或某些项目必须使用 Visual Studio,也可以在 Visual ...

最新文章

  1. php 清除之前echo_PHP入门读书笔记(三): 常量和变量
  2. leetcode算法题--二分查找
  3. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
  4. 这 30 个常用的 Maven 命令你必须熟悉!
  5. 全球与中国终端天线市场发展战略与运营规划分析报告
  6. 【若依(ruoyi)】layui upload
  7. TensorLayer MNIST
  8. 自动关机脚本2007-10-28 10:04@ECHO off
  9. python import request 不报错_爬虫学习路径整理及安装环境遇到的坑
  10. 如何给 Chrome 开发者工具设置 Material Design 风格的主题外观
  11. js的client、scroll、offset详解与兼容性
  12. sklearn 特征降维利器 —— PCA TSNE
  13. 「每天一道面试题」对象和GC Roots引用链没连接时一定会被回收吗
  14. 【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】
  15. 使用pyserial开发的一个串口调试工具
  16. vscode配置esp32开发环境:ESP-IDF VS Code Extension 没有 Using Existing Setup
  17. 计算器软件设计和计算机软件设计区别,基于LabVIEW的计算器程序设计
  18. Android应用测速组件实现原理,这篇看完还不懂跟我去摆地摊,全网首发
  19. 手机html怎样取消,手机怎么取消wifi隐藏_手机如何取消隐藏wifi?-192路由网
  20. python作用域的理解-python中对变量的作用域LEGB、闭包、装饰器基本理解

热门文章

  1. 三菱PLC开发环境搭建笔记
  2. HihoCoder 1838 贪心
  3. Markdown绘制思维导图
  4. matlab 摄动波浪理论,等于波浪论文,关于MATLAB在实验室波高采集中的应用相关参考文献资料-免费论文范文...
  5. js日期格式化 YYMMDD 转 YY-MM-DD 转 YY年MM月DD日
  6. 欧拉素数筛理解与模板
  7. zblog插件全自动采集伪原创发布插件免费
  8. zip 的ZipEntry转换为InputStream
  9. 风尚云网学习-Linux/宝塔面板部署禅道开源系统
  10. 中国北斗卫星导航系统