Qt常用控件之QComboBox

Qt常用控件之QComboBox

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【Qt的学习】

📝📝本篇内容:QComboBox基本介绍;点餐功能;读取文件获取数据

⬆⬆⬆⬆上一篇:Qt常用控件之QTextEdit

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.QComboBox基本介绍

QComboBox是一个下拉框控件,我们可以通过这个控件来进行选择,还是老样子,讲一下它的相关函数和信号

函数声明 函数说明
QString currentText() const 返回当前选中的文本
int currentIndex() const 返回当前选中条目的下标,从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
void setEditable(bool editable) 设置是否可以编辑,设为 true 时, QComboBox 的⾏为就⾮常接近 QLineEdit , 也可以设置validator即验证器
void setIconSize(const QSize &size) 设置下拉图标的大小
void setMaxCount(int max) 设置最大的条目数量
void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant()) 添加⼀个条⽬

接下来就是信号

信号声明 信号说明
void QComboBox::activated(int index) 当⽤⼾选择了⼀个选项时发出,这个时候相当于用户点开下拉框, 并且⿏标划过某个选项,此时还没有确认做出选择
void activated(QString) 同上,只不过是类型变成了条目内容
void currentIndexChanged(const QString &text) 当前选项改变时发出,此时用户已经明确的选择了⼀个选项,用户操作或者通过程序操作都会触发这个信号.
void currentIndexChanged(int index) 同上,只不过类型变成了条目下标
void editTextChanged(const QString &text) 当编辑框中的⽂本改变时发出,(editable 为 true 时有效)

2.点餐功能

通过这个我们又可以实现一下点餐功能了,只需要三个QComboBox控件即可,向每个控件中添加条目


当我们下拉框后,鼠标滑过某个选项,选项会带有高亮效果,此时就表示激活,也就是前面所说的触发activited信号

3.读取文件获取数据

我们下拉框中的内容很多时候不是写死的,而是需要从网络或者本地文件中加载到的,因此我们可以模拟一下本地文件的读取

我们先在项目目录下创建一个txt文件,内容是一些城市

在图形化界面拖拽一个下拉框即可

这里面有两个点要注意一下,第一个就是我们读取到的内容是C++中的std::string类型,但是我们需要的是QString,因此我们就需要通过QString::fromStdString()来进行转换,相反从QString转换到std::string就要使用QString s;s.toStdString()来转换。第二个点是我们的目录写法,它本身有两种写法,但是我们不能使用相对地址,因为我们的可执行程序并不是在当前写代码的目录下,而是在编译目录下

这里还有一个点要注意,我们的文本内容中不能多打换行,否则就会造成下面的情况

会造成多出一个条目,并且是空的,因此我们在文本中写完最后一个条目后不需要再打回车

🌸🌸Qt常用控件之QComboBox大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
云栖梦泽几秒前
鸿蒙应用全流程上线实战:从合规到运营的闭环落地
开发语言·鸿蒙系统
大猫会长3 分钟前
react中用css加载背景图的2种情况
开发语言·前端·javascript
小尧嵌入式4 分钟前
Linux网络介绍网络编程和数据库
linux·运维·服务器·网络·数据库·qt·php
篱笆院的狗7 分钟前
Java 中线程之间如何进行通信?
java·开发语言
坐吃山猪9 分钟前
Python命令行工具argparse
开发语言·python
lsx2024069 分钟前
jQuery 密码验证
开发语言
创作者mateo11 分钟前
python进阶之文件处理
开发语言·python
星月心城13 分钟前
八股文-JavaScript(第一天)
开发语言·前端·javascript
Thomas_YXQ14 分钟前
Unity3D的委托和事件的用法详解
java·开发语言
编程小Y18 分钟前
Bash 替换机制
开发语言·chrome·bash