1.QComboBox简介

QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。

2.常用方法

添加带图标的项

    QIcon   icon;
    icon.addFile(":/images/icon.jpg");
    ui->comboBox->addItem(icon,"四川");
    ui->comboBox->addItem(icon,"湖南");
    ui->comboBox->addItem(icon,"湖北");

添加不带图标的项

QStringList strList;
strList<<"四川"<<"湖南"<<"湖北";
ui->comboBox->addItems(strList);

添加用户自定义数据

    //添加带自定义数据
    QMap<QString, QString> City_Zone;
    City_Zone.insert("四川","sichuan");
    City_Zone.insert("湖南","hunan");
    City_Zone.insert("湖北","hubei");
    foreach(const QString &str,City_Zone.keys())
           ui->comboBox->addItem(str,City_Zone.value(str));
//返回当前项的序号,第一个项的序号为0。
int currentlndex()
//返回当前项的文字。
QString currentText()
//返回当前项的关联数据
QVariant currentData(int role = Qt::UserRole)
//返回指定索引号的项的文字。
QString itemText(int index)
//返回指定索引号的项的关联数据。
QVariant itemData(int index, int role = Qt::UserRole)
//返回项的个数。
int count()

设置QComboBox下拉框的样式,可以是 列表、树、表格等格式

void setView(QAbstractItemView *itemView)

在一个 QComboBox 组件上选择项发生变化时,会发射如下两个信号:

void currentlndexChanged(int index)
void currentlndexChanged(const QString &text)

3.示例1-添加数据

选择combobox中的一项,在textEdit上打印自定义的数据

#include "widget.h"
#include "ui_widget.h"
#include <QMap>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
    ui->setupUi(this);
    //初始化
//    QStringList strList;
//    strList<<"四川"<<"湖南"<<"湖北";
//    ui->comboBox->addItems(strList);
    //添加带自定义数据
    QMap<QString, QString> City_Zone;
    City_Zone.insert("四川","sichuan");
    City_Zone.insert("湖南","hunan");
    City_Zone.insert("湖北","hubei");
    foreach(const QString &str,City_Zone.keys())
           ui->comboBox->addItem(str,City_Zone.value(str));
Widget::~Widget()
    delete ui;
void Widget::on_comboBox_currentIndexChanged(const QString &arg)
    QString py=ui->comboBox->currentData().toString() ;//项关联的数据
    QString str = QString("当前选择项为 ")+arg + " = "+py;
    ui->textEdit->setText(str);

4.示例2-显示为树形结构

本例演示树形结构,可以显示别的结构。

    QStandardItemModel *model = new QStandardItemModel(this);
    //设置表头
    model->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
    QStandardItem *item1 = new QStandardItem("四年级");
    model->setItem(0,0,item1);
    QStandardItem *item00 = new QStandardItem("张三");
    QStandardItem *item10 = new QStandardItem("张四");
    QStandardItem *item20 = new QStandardItem("张五");
    QStandardItem *item01 = new QStandardItem("男");
    QStandardItem *item11 = new QStandardItem("女");
    QStandardItem *item21 = new QStandardItem("男");
    QStandardItem *item02 = new QStandardItem("15");
    QStandardItem *item12 = new QStandardItem("14");
    QStandardItem *item22 = new QStandardItem("16");
    model->item(0,0)->setChild(0,0,item00);
    model->item(0,0)->setChild(1,0,item10);
    model->item(0,0)->setChild(2,0,item20);
    model->item(0,0)->setChild(0,1,item01);
    model->item(0,0)->setChild(1,1,item11);
    model->item(0,0)->setChild(2,1,item21);
    model->item(0,0)->setChild(0,2,item02);
    model->item(0,0)->setChild(1,2,item12);
    model->item(0,0)->setChild(2,2,item22);
    QTreeView *treeView = new QTreeView(ui->comboBox);
    ui->comboBox->setView(treeView);
    ui->comboBox->setModel(model);

5.设置style常见问题

设置style常见问题icon-default.png?t=M5H6https://blog.csdn.net/wzz953200463/article/details/103835587

1.QComboBoxQComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。2.常用方法添加带图标的项 QIcon icon; icon.addFile(":/images/icon.jpg"); ui-&gt;comboBox-&gt;addI.... QComboBox提供了一种向用户呈现选项列表的方式,以占用最少的屏幕空间。 组合框是一个显示当前项目的选择小部件,可以弹出可选择项目的列表。 组合框可以是可编辑的,允许用户修改列表中的每个项目。 常用Api 添加item 两个重载addItem() 函数,后面都有一个可选的 QVariant 类型的参数 userData,可以利用这个变量存储用户定义数据。 void addItem (const QString &text, const QVariant &userData = Q   void addItem(const QString &text, const QVariant &userData = QVariant())   void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())   在列表的最后一项添 //添加顶层节点 QTreeWidgetItem *topItem1 = new QTreeWidgetItem(ui->treeWidget); topItem1->setText(0,"百度"); ui->treeWidget->addTopLevelItem(topItem1); 2.设置表头隐藏,展开所有项 //隐藏表头 ui->treeWidget->setHeade. QListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。 2....
1、Qt中使用QDialog来实现对话框,QDialog继承自QWidget,对话框分为两种,一种是模态对话框、另一种是非模态对话框。即阻塞和非阻塞对话框,而模态对话框又有两种:应用程序级别的和窗口级别的,分别指完成对话框之前阻塞整个应用和阻塞关联窗口。exec()和 open()分别为应用程序级别和窗口级别的模态对话框,show()则为非模态对话框。 QDialog::show():...
您好!关于QtQComboBox,它是一个下拉列表框控件,常用于提供选择或切换选项的功能。您可以通过以下方式使用QComboBox: 1. 创建QComboBox对象: ```cpp QComboBox *comboBox = new QComboBox(parent); 2. 添加选项: ```cpp comboBox->addItem("Option 1"); comboBox->addItem("Option 2"); comboBox->addItem("Option 3"); 3. 获取当前选中的选项: ```cpp QString selectedOption = comboBox->currentText(); 4. 响应选项变化: ```cpp connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), [=](int index){ // 处理选项变化的逻辑 5. 设置默认选中的选项: ```cpp comboBox->setCurrentIndex(index); 6. 设置下拉列表的最大可见项数: ```cpp comboBox->setMaxVisibleItems(maxItems); 7. 获取当前选中的选项索引: ```cpp int selectedIndex = comboBox->currentIndex(); 这些只是QComboBox的基本用法,您还可以进行更多的自定义设置和操作。希望对您有所帮助!如果有任何问题,请随时提问。