【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组件,我们主要注意一下那几个添加方法,后获取的方法。

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

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值