- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt常用控件 | 输入类控件 | Combo Box的使用及说明
文章编号:Qt 学习笔记 / 30
文章目录
- Qt常用控件 | 输入类控件 | Combo Box的使用及说明
- 一、QComboBox介绍
- 1. 简介
- 2. 常见属性
- 3. 核心方法
- 4. 核心信号
- 二、ComboBox的使用(代码示例)
- 1. 使用下拉框实现点餐系统
- 2. 从文件中加载下拉框的选项
一、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. 使用下拉框实现点餐系统
- 在界面上创建三个下拉框, 和⼀个按钮.
- 编辑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("江小白");
}
- 生成按钮的槽函数,并修改槽函数
void Widget::on_pushButton_clicked()
{qDebug() << "饮料选择: " << ui->comboBox->currentText();qDebug() << "零食选择: " << ui->comboBox_2->currentText();qDebug() << "烟酒选择: " << ui->comboBox_3->currentText();
}
- 运行代码,并查看结果
2. 从文件中加载下拉框的选项
- 在界⾯上创建⼀个下拉框
- 创建⽂件resource.txt , 编写选项. 每个选项占⼀⾏
- 修改 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();
}
- 运行代码查看结果