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常见问题
https://blog.csdn.net/wzz953200463/article/details/103835587
1.QComboBoxQComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。2.常用方法添加带图标的项 QIcon icon; icon.addFile(":/images/icon.jpg"); ui->comboBox->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():...
您好!关于Qt的QComboBox,它是一个下拉列表框控件,常用于提供选择或切换选项的功能。您可以通过以下方式使用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的基本用法,您还可以进行更多的自定义设置和操作。希望对您有所帮助!如果有任何问题,请随时提问。