下拉框QComboBox

news/2024/9/19 5:07:44 标签: qt, c++

文本

// 获取和设置当前条目的索引
int currentIndex() const
void setCurrentIndex(int index)

// 获取和设置当前条目的文本
QString currentText() const
void setCurrentText(const QString &text)

// 获取和设置指定索引条目的文本    
QString itemText(int index) const
void setItemText(int index, const QString &text)

图标

还可以给条目加图标

// 获取和设置对应索引条目的图标
QIcon itemIcon(int index) const
void setItemIcon(int index, const QIcon &icon)

插入和删除

---新增条目:可一次新增一个条目或多个条目,同时增加的时候可以指定图标

// 一次新增一个条目
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)

---插入条目:可一次插入一个或多个条目

// 一次插入一个条目
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 &list)

--- 插入策略:在添加条目时还可以指定插入的策略(只对addItem/addItems的插入有效对insert系列方法不生效,别弄混了,insert总是插入到指定索引的前面

// 获取和设置插入策略
QComboBox::InsertPolicy insertPolicy() const
void setInsertPolicy(QComboBox::InsertPolicy policy)

常用的插入策略有:

  • QComboBox::NoInsert 不插入
  • QComboBox::InsertAtTop 作为第一条目插入(替换原第一条条目)
  • QComboBox::InsertAtCurrent 替换当前条目
  • QComboBox::InsertAtBottom 在最后一个条目之后插入
  • QComboBox::InsertAfterCurrent 在当前条目之后插入
  • QComboBox::InsertBeforeCurrent 在当前条目之前插入
  • QComboBox::InsertAlphabetically 按英文字母顺序插入

---插入分隔符:可以在条目之间插入一条分隔符

// 在指定索引位置处插入分隔符
void insertSeparator(int index)

---删除条目:删除指定索引位置的条目

// 删除指定索引的条目
void removeItem(int index)

常用信号

// 当前选中的条目变化时,会发射这两个信号
void currentIndexChanged(int index)
void currentTextChanged(const QString &text)

举例

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QComboBox>
#include<QLabel>
#include<QHBoxLayout>
#include<QMessageBox>
#include<QPushButton>


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr):QWidget(parent)
    {
        resize(400,300);
        QHBoxLayout* h_box=new QHBoxLayout(this);


        QLabel* city=new QLabel(this);
        city->setText("籍贯:");
        city->setFixedSize(50,50);
        h_box->addWidget(city);


        cbo_city=new QComboBox(this);
        cbo_city->addItem(QIcon(":/Qing.png"),"浙江");//一次添加1个条目,带图片
        cbo_city->addItems({"湖北","湖南"});//一次添加多个条目
        cbo_city->setItemIcon(1,QIcon(":/Qing.png"));//给指定条目加图片

        cbo_city->insertItem(1,"山东");//在湖北前面插入山东
        cbo_city->insertSeparator(1);//在山东前面插入分割线

        cbo_city->setCurrentIndex(0);
        h_box->addWidget(cbo_city);

        //绑定信号
        connect(cbo_city,&QComboBox::currentIndexChanged,this,[=](){
            auto current_text=cbo_city->currentText();
            QMessageBox::information(this,"",QStringLiteral("当前选择:")+current_text);
        });

    }
    ~Widget()=default;
private:
    QComboBox* cbo_city;
};
#endif // WIDGET_H

 学习链接:https://github.com/0voice


http://www.niftyadmin.cn/n/5665047.html

相关文章

Maven的高级特性

目录 1. 分模块开发与设计 2. 依赖管理 3. 聚合与继承 4. 多环境配置 5. 使用私服 1. 分模块开发与设计 分模块开发的意义&#xff1a;将一个大的项目拆分成多个子模块&#xff0c;每个模块负责一个单独的功能&#xff0c;可以增加项目的可维护性和可重用性。例如&#xf…

出厂非澎湃OS手机解BL锁

脚本作者&#xff1a;酷安mlgmxyysd 脚本项目链接&#xff1a;https://github.com/MlgmXyysd/Xiaomi-HyperOS-BootLoader-Bypass/ 参考 B站作者&#xff1a;蓝空穹 https://www.bilibili.com/read/cv33210124/ 其他参考&#xff1a;云墨清风、水墨青竹、Magisk中文网 决定解BL…

浅谈Tair缓存的三种存储引擎MDB、LDB、RDB

文章目录 什么是TairTair的三种引擎对比1.MDB2.LDB3.RDB 什么是Tair Tair是阿里巴巴自主研发的高性能、分布式、可扩展、高可靠的 key/value 存储系统。 一般我们可能会认为是阿里开发的加强版Redis&#xff0c;支持双向数据同步&#xff0c;能够很好的支持缓存异地多中心&…

gitlab/极狐-离线包下载地址

如果想要使用Gitlab/极狐进行数据的恢复&#xff0c;只能使用相同版本或者相近版本的安装包&#xff0c;因此有时候需要到它的官网上下载对应版本的安装包&#xff0c;以下是我收集到的对应地址的下载路径&#xff1a; Gitlab Gitlab离线库&#xff0c; https://packages.gitl…

鸿蒙OpenHarmony【轻量系统芯片移植】轻量系统STM32F407芯片移植案例

轻量系统STM32F407芯片移植案例 介绍基于STM32F407IGT6芯片在拓维信息[Niobe407]开发板上移植OpenHarmony LiteOS-M轻量系统&#xff0c;提供交通、工业领域开发板解决方案。移植架构采用Board与SoC分离方案&#xff0c;使用arm gcc工具链Newlib C库&#xff0c;实现了lwip、l…

linux hadoop-3.3.6 hbase-2.5.7

软件下载 hadoop https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz 可以直接下载到本地&#xff0c;也可以直接下载进虚拟机中 如果速度较慢&#xff0c;可以用&#xff1b;另一个 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common…

红帽 Quay- 配置镜像代理缓存

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 Quay 3.12 环境中验证 说明&#xff1a;可先根据《红帽 Quay - 安装篇》完成 Quay 安装。 镜像代理缓存功能 Quay 的镜像代理缓存功能可以将用户拉取的远程镜像保存到本地 Quay 的 proxy cache 中&am…

Shell脚本编程基础(二)

在 Bash Shell 编程中&#xff0c;数组、运算符和条件判断是非常重要的基础内容。本文将介绍如何在 Bash 中使用一维数组、进行基本的数学运算以及条件判断。 一维数组 Bash Shell 仅支持一维数组&#xff0c;初始化时不需要定义数组的大小。以下是一些基本的数组操作&#x…