【qt】下拉列表组件

简介: 【qt】下拉列表组件

一.Combo Box

还是老样子,咱们边做边练

目标图:

1.可以直接双击编辑下拉内容

话不多说,先拖。

标签是可以显示框线的

运行结果:

接下来开始布局:

上面的4个组件先格栅,然后窗口垂直布局,然后可以加Spacer来调距离,也可以通过设置最小宽度来调。

当我们直接双击comboBox时,会弹出:

在这里可以直接进行下拉选择的添加

但是这样写死,不太好,大多数我们是用代码来写!

2.代码初始化下拉内容

定义一个初始化函数initUI来初始化下拉组件

3.一次性添加多个下拉内容

addItems(),注意参数为字符串列表

void Dialog::initUI()
{
    ui->comboBoxXueli->clear();//先清空刚刚我们双击添加的学历
    QStringList list;
    list<<"小学"<<"初中"<<"高中"<<"大学"<<"研究生"<<"博士后";
    ui->comboBoxXueli->addItems(list);//参数为字符串列表
    }

4.下拉框手动编辑

**setEditable(true)**就可以直接输入

ui->comboBoxXueli->setEditable(true);

5.下拉内容添加附加值

addItem的第二个参数为附加值,当我们获取时,可以获取的到。

因为这样两个值,我们刚好可以用到容器QMap

用迭代器循环来进行加入。

QMap<QString,QString> citys;
    citys.insert("北京","010");
    citys.insert("上海","020");
    citys.insert("江苏","030");
    citys.insert("四川","080");

    for(auto it=citys.begin();it!=citys.end();it++)
    {
        ui->comboBoxCity->addItem(it.key(),it.value());
    }

运行结果:

6.下拉添加图标

OK接下来我们来添加图标。

addItem的第一个参数可以加图标。

因为有这些重载函数:

OK,添加图标肯定要有资源,所有我们先来添加资源吧。

记得添加完后保存一下:

然后开始添加我们的资源到下拉组件中

addFile是将路径中的图片添加到icon的变量名中。

:表示从当前资源目录中去寻找。

    QIcon icon1;
    icon1.addFile(":/lanq.png");
    ui->comboBoxLove->addItem(icon1,"篮球");
    QIcon icon2;
    icon2.addFile(":/music.png");
    ui->comboBoxLove->addItem(icon2,"音乐");

运行结果:

7.获取下拉值

接下来我们对下拉组件来进行转到槽,获取下拉的内容。

用这个信号

currentText可以来获取当前下拉选中的值。

currentDate可以来获取当前的附加值,如果设置了的话

void Dialog::onChange()
{
    QString xueli=ui->comboBoxXueli->currentText();
    QString  city=ui->comboBoxCity->currentText();
    QString love=ui->comboBoxLove->currentText();
    QString number=ui->comboBoxCity->currentData().toString();//获取附加值

    QString ret="学历:"+xueli+" 爱好:"+love+" 城市:"+city+" 区号:"+number;

    ui->labelText->setText(ret);

}


void Dialog::on_comboBoxXueli_currentIndexChanged(int index)
{
     onChange();
}

void Dialog::on_comboBoxCity_currentIndexChanged(int index)
{
    onChange();
}

void Dialog::on_comboBoxLove_currentIndexChanged(int index)
{
   onChange();
}

运行结果:

二.总结

对于Combo Box组件,我们主要注意一下那几个添加方法,后获取的方法。

成功的确需要一步一个脚印的积累,勤奋和汗水是成功的基础和前提!

相关文章
|
2月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
67 8
C++ Qt开发:QTcpSocket网络通信组件
|
2月前
【qt】Tool Box组件
【qt】Tool Box组件
21 0
|
19天前
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
19 2
|
2月前
【qt】QTableWidget 表格组件3
【qt】QTableWidget 表格组件
19 0
|
2月前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
29 0
|
2月前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
22 0
|
2月前
|
索引 Windows
【qt】QTreeWidget 树形组件2
【qt】QTreeWidget 树形组件
23 0
|
2月前
|
C++
【qt】QTreeWidget 树形组件1
【qt】QTreeWidget 树形组件
27 0
|
2月前
【qt】QListWidget 组件3
【qt】QListWidget 组件
12 0
|
2月前
【qt】QListWidget 组件2
【qt】QListWidget 组件
30 0