7.9 QComboBox下拉选择框


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

7.9 QComboBox下拉选择框

QComboBox简介

QComboBox 下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。

QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。


QComboBox *combo = new QComboBox();     // 下拉选择框

combo->addItem(tr("第一个选项"));    // 添加选项

combo->addItem(tr("第二个选项"));

// slot_combo()是自定义的槽函数,可根据需求自行修改

connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_combo())); 

combo->currentIndex()可以查看当前索引值

好文章,来自【福优学苑@音视频+流媒体】


QComboBox列表项的访问

QComboBox 存储的项是一个列表,但是 QComboBox 不提供整个列表用于访问,可以通过索引访问某个项。

访问项的一些函数主要有以下几种:

int currentlndex():

返回当前项的序号,第一个项的序号为0。

QString currentText():

返回当前项的文字。

QVariant currentData(int role = Qt::UserRole):

返回当前项的关联数据,

QString itemText(int index):

返回指定索引号的项的文字。

QVariant itemData(int index, int role = Qt%:UserRole):

返回指定索引号的项的关联数据。

int count():

返回项的个数。

好文章,来自【福优学苑@音视频+流媒体】


QComboBox的currentlndexChanged信号

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

void currentlndexChanged(int index)

void currentlndexChanged(const QString &text)

这两个信号只是传递的参数不同,

一个传递的是当前项的索引号,

一个传递的当前项的文字。

好文章,来自【福优学苑@音视频+流媒体】

/// h文件

private slots:

void on_comboBox_cities_currentIndexChanged(

const QString &arg1);

/// cpp文件

void Widget::on_comboBox_cities_currentIndexChanged(

const QString &arg1)

{

    ui->lineEdit_city->setText( arg1 );

}

image.png

好文章,来自【福优学苑@音视频+流媒体】

QComboBox添加图标

image.png



用代码添加项

添加一个项时可以指定一个图标,图标来源于资源文件。

void Widget::on_pushButton_addCity_clicked()

{

    QIcon   icon;

    icon.addFile(":/images/icon_city.png");


    ui->comboBox_cities->addItem("河南");

    ui->comboBox_cities->addItem(icon,"福建");


}

好文章,来自【福优学苑@音视频+流媒体】

添加项

addItem():

 用于添加一个列表项,


addltems() 函数:

如果只是添加字符串列表项,

而且数据来源于一个 QStringList 变量,

可以使用 addltems() 函数,示例代码如下:


好文章,来自【福优学苑@音视频+流媒体】

ui->comboBox->clear();

QStringList strList;

strList<<"北京"<<"上海"<<"天津"<<"河北省"<<"山东省"<<"山西省";

ui->comboBox->addItems(strList);




好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***