当前位置: 首页 > backend >正文

59常用控件_QComboBox的使用

目录

 代码示例:使用下拉框模拟麦当劳点餐

代码示例:从文件中加载下拉框的选项


QComboBox表示下拉框
核心属性

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

核⼼⽅法

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

 核⼼信号

方法说明

activated(int)

activated(const QString & text)

当用户选择了一个选项时发出。

这个时候相当于用户点开下拉框,并且鼠标划过某个选项。
此时还没有确认做出选择。

currentIndexChanged(int)

currentIndexChanged(const QString & text)

当前选项改变时发出。

此时用户已经明确的选择了一个选项。
用户操作或者通过程序操作都会触发这个信号。

editTextChanged(const QString & text)当编辑框中的文本改变时发出 (editable 为 true 时有效)

 代码示例:使用下拉框模拟麦当劳点餐


1)在界面上创建三个下拉框,和一个按钮

2) 编写 widget.cpp, 初始化三个下拉框的内容
3) 编写 widget.cpp, 给按钮添加 slot 函数
4) 执⾏程序, 可以看到, 在点击确定按钮时, 就能获取到当前下拉框中选中的内容
还可以通过Designer图形化界面创建

代码示例:从文件中加载下拉框的选项


很多时候下拉框的选项并非是固定的,而是通过读取文件/读取网络获取到的.
1)在界面上创建一个下拉框
2) 创建⽂件 config.txt , 编写选项. 每个选项占⼀⾏.
形如:
3) 修改widget.cpp,从文件中读取选项.
使用ifstream打开文件
使用getline读取每一行
使用QString::fromStdString把std::string转成QString
QString::fromStdString(line)-----转为QString字符串
QString::toStdString();----------转为String字符串
4) 执⾏程序, 可以看到⽂件内容已经被加载到下拉框中
Qt中也提供了QFile实现读写文件的功能,当然使用C++标准库的std:fstream也是完全可
以的.
之所以存在两套,是因为Qt诞生较早(1991年左右),此时C++还没有完成"标准化"的工作,
C++标准库这样的概念自然也没有诞生,
因此Qt就自己打造了一套库,实现了字符串,容器,文件操作,多线程,网络操作,定时器,正则表达式等内容.
(由于C++标准委员会的不作为,至今仍然有些Qt提供的功能,是标准库不具备的)
CPU是计算机的核心.一个计算机可以没有硬盘,可以没有网卡,可以没有显示器,可以
没有键盘,但是不能没有CPU.一个计算机如果没有CPU,就不能成为是计算机了!!
文件输入输出方向一般针对CPU
ui->comboBox->addItem(line)
此处要求的参数是 QString,不是 std:string.
虽然都是字符串,但是他们是不同的类型~~
此处就需要手动转换了~~
QString::fromStdString(line)
把 std:string 转成 QString
QString s;
s.toStdString();
把 Qstring 转成 std:string
http://www.xdnf.cn/news/3404.html

相关文章:

  • 【C语言练习】015. 声明和初始化指针
  • 【Hive入门】Hive性能调优之资源配置:深入解析执行引擎参数调优
  • 欧拉计划 Project Euler62(立方数重排)题解
  • Allegro23.1新功能之如何加粗打印线宽操作指导
  • 跨域 iframe 内剪切板 Clipboard_API 报错
  • 网络安全零基础培训 L1-9 PHP连接MySQL数据库
  • d202551
  • QMK固件烧录指南:安全高效地更新您的机械键盘
  • Python结合QT进行开发
  • 西门子数字化研发设计制造一体化规划案例P87(87页PPT)(文末有下载方式)
  • 神经网络—损失函数
  • Python 数据智能实战 (6):用户评论深度挖掘
  • OpenGL-ES 学习(10) ---- OpenGL-ES Shader语言语法
  • CMake中强制启用option定义变量的方法
  • Unity SpriteEditor(精灵图片编辑器)
  • C++笔记-继承(下)(包含派生类的默认成员函数,菱形继承等)
  • AJAX 实例
  • vscode 的空格和 tab 设置 与 Rime 自建词库
  • AI大模型基础设施:主流的几款开源AI大语言模型的本地部署成本
  • 企业内训|智能驾驶与智能座舱技术——某汽车厂商
  • Ubuntu18 登录界面死循环 Ubuntu进不了桌面
  • 初学Vue之记事本案例
  • 【Linux】VSCode用法
  • 【嵌入式———通用定时器基本操作——实验需求2:案列:测量PWM的频率/周期】
  • 用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]
  • 构建现代分布式云架构的三大支柱:服务化、Service Mesh 与 Serverless
  • 第十一届蓝桥杯 2020 C/C++组 门牌制作
  • vue 常见ui库对比(element、ant、antV等)
  • 兰亭妙微:数据驱动的 B 端设计:如何用 UI 提升企业级产品体验?
  • 【Qt】网络