【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt常用控件 | 输入类控件 | Combo Box的使用及说明

文章编号:Qt 学习笔记 / 30


一、QComboBox介绍

1. 简介

QComboBox是一个下拉框控件,用于在一个预定义的列表中选择一个选项。它是Qt库中的一个类,可以在Qt应用程序中使用。

可以通过设置QComboBox的属性来自定义其外观和行为,如设置字体、背景颜色、边框样式等。

QComboBox可以用于多种情况,如选择一个颜色、选择一个字体、选择一个文件名等等。它也可以用于构建自定义的输入界面,例如在一个表单中选择一个国家或城市。

在这里插入图片描述

2. 常见属性

属性说明
currentText当前选中的⽂本
currentIndex当前选中的条⽬下标.
从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
editable是否允许修改
设为 true 时, QComboBox 的⾏为就⾮常接近 QLineEdit , 也可以设置 validator
iconSize下拉框图标 (⼩三⻆) 的⼤⼩
maxCount最多允许有多少个条⽬

3. 核心方法

核心方法说明
addItem(const QString&)添加⼀个条⽬
currentIndex()获取当前条⽬的下标
从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
currentText()获取当前条⽬的⽂本内容

4. 核心信号

核心信号说明
activated(int)
activated(const QString & text)
当用户选择了⼀个选项时发出
这个时候相当于用户点开下拉框, 并且⿏标划过某个选项.
此时还没有确认做出选择.
currentIndexChanged(int)
currentIndexChanged(const QString& text)
当前选项改变时发出.
此时用户已经明确的选择了⼀个选项.
用户操作或者通过程序操作都会触发这个信号.
editTextChanged(const QString &text)当编辑框中的⽂本改变时发出(editable 为 true 时有效)

二、ComboBox的使用(代码示例)

1. 使用下拉框实现点餐系统

  1. 在界面上创建三个下拉框, 和⼀个按钮.
    在这里插入图片描述
  2. 编辑widget.cpp文件,添加下拉框内的选项
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->comboBox->addItem("雪碧");
    ui->comboBox->addItem("可乐");

    ui->comboBox_2->addItem("旺旺雪饼");
    ui->comboBox_2->addItem("旺旺仙贝");

    ui->comboBox_3->addItem("红酒");
    ui->comboBox_3->addItem("江小白");
}
  1. 生成按钮的槽函数,并修改槽函数
void Widget::on_pushButton_clicked()
{
    qDebug() << "饮料选择: " << ui->comboBox->currentText();
    qDebug() << "零食选择: " << ui->comboBox_2->currentText();
    qDebug() << "烟酒选择: " << ui->comboBox_3->currentText();
}
  1. 运行代码,并查看结果
    在这里插入图片描述
    在这里插入图片描述

2. 从文件中加载下拉框的选项

  1. 在界⾯上创建⼀个下拉框
    在这里插入图片描述
  2. 创建⽂件resource.txt , 编写选项. 每个选项占⼀⾏
    在这里插入图片描述
  3. 修改 widget.cpp, 从⽂件中读取选项
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    std::ifstream file("D:/QtCode/resource.txt");
     std::string line;
     while (std::getline(file, line)) {
     ui->comboBox->addItem(QString::fromStdString(line));
     }
     file.close();
}

  1. 运行代码查看结果
    在这里插入图片描述

在这里插入图片描述

  • 37
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Duck Bro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值