Qt常用控件——QComboBox

news2024/11/15 19:25:09

文章目录

    • 核心属性、方法、信号
    • 模拟点餐
    • 文件加载

核心属性、方法、信号

QComboBox表示下拉框

核心属性:

属性说明
currentText当前选中文本
currentIndex当前选中的条目下标
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时有效)

模拟点餐

image-20240915142941927

#include "widget.h"
#include "ui_widget.h"
#include<QtDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->comboBox_stapleFood->addItem("米饭");
    ui->comboBox_stapleFood->addItem("面条");
    ui->comboBox_stapleFood->addItem("馒头");
    ui->comboBox_stapleFood->addItem("大饼");

    ui->comboBox_dishes->addItem("鱼香肉丝");
    ui->comboBox_dishes->addItem("清炒时蔬");
    ui->comboBox_dishes->addItem("辣子鸡");
    ui->comboBox_dishes->addItem("回锅肉");

    ui->comboBox_soup->addItem("老母鸡汤");
    ui->comboBox_soup->addItem("西红柿鸡蛋汤");
    ui->comboBox_soup->addItem("紫菜汤");
    ui->comboBox_soup->addItem("排骨玉米汤");

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    qDebug() << ui->comboBox_stapleFood->currentText() << ", " << ui->comboBox_dishes->currentText() << ", " << ui->comboBox_soup->currentText();
}

也可以通过图形化界面的方式编辑下拉框内容:

image-20240915144230621

文件加载

下拉框里面的内容,一般都不是写死的,而是从文件/网络当中加载获得,下面以文件加载作为示例。

准备config文件:

image-20240915152320232

#include "widget.h"
#include "ui_widget.h"
#include<fstream>
#include<QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //读取文件内容,提取每一行的内容
    std::ifstream file("C:/Users/panyu/Desktop/config.txt");
    if(!file.is_open())
    {
        qDebug() << "open file error";
        return;
    }
    //按行读取
    std::string line;
    while(std::getline(file, line))
    {
        //接受参数为QString  需要转换一下
        //ui->comboBox->addItem(line);
        ui->comboBox->addItem(QString::fromStdString(line));
    }
}

Widget::~Widget()
{
    delete ui;
}

image-20240915152353578

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:people.sort(keylambda x: (-x[0], x[1]))n len(people)ans list()for person in people:ans[person[1]:person[1]] [person]return ans

SpringCloudAlibaba:Seata

1. 面试题 2.1 你简历上写用微服务boot/cloud做过项目&#xff0c;你不可能只有一个数据库吧&#xff1f;谈谈多个数据库之间如何处理分布式事务&#xff1f; 2.2 阿里巴巴的Seata-AT模式如何做到对业务的无侵入&#xff1f; 在一阶段&#xff0c;Seata 会拦截“业务 SQL”&a…

Python版《天天酷跑+源码》,详细讲解,手把手教学-python游戏开发

天天酷跑游戏 游戏效果: 游戏主要是躲避障碍物&#xff0c;这里也添加了金币&#xff0c;增加一点积分的娱乐性&#xff0c;人物设置是三条命&#xff0c;障碍物有6种&#xff0c;包括金币&#xff0c;障碍物随机生成&#xff0c;碰到障碍物掉一滴血&#xff0c;没血了结束游戏…

消失的数字:

Q&#xff1a;数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;[3,0,1] 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;[9,6,4,2,3,5,7,0,1] …

产品经理如何转型为AI产品经理,如何理解AI产品工程化

技术领域,特别是人工智能和机器学习,其优秀模型的成功应用是一个复杂过程,它不仅要求技术本身的卓越,还须与现有解决方案竞争,这涉及到技术成熟度、成本有效性、市场接受度等多维度因素。 在这一过程中,产品经理扮演着核心角色,负责协调各方利益,确保技术能够转化为满…

5.1 溪降技术:个人装备

Content 5.1 个人装备概览设备概览视频电子书&#xff1a;个人装备安全装备非安全装备 峡谷探险个人安全装备个人安全装备视频*安全扣结构*峡谷探险个人非安全装备 湿峡谷湿峡谷装备视频个人安全装备个人非安全装备 干峡谷干峡谷装备视频个人安全装备个人非安全装备 团队装备&a…

【415】【数字小镇中的捣蛋鬼】

第2场周赛&#xff0c;又是被佬薄纱的一天 简单题 秒杀啊 class Solution:def getSneakyNumbers(self, nums: List[int]) -> List[int]:dictdefaultdict(int)ret[]for num in nums:dict[num]1for key in dict.keys():if dict[key]2:ret.append(key)return ret

前端基础知识+算法(一)

文章目录 算法二分查找条件注意方式基本原理左闭右闭正向写法 左闭右开正向写法 前端基础知识定时器及清除盒子垂直水平居中的方式垂直水平1.flex布局2.grid布局3.定位对于块级元素 解决高度塌陷的方式1.给父元素一个固定的高度2.给父元素添加属性 overflow: hidden;3.在子元素…

2024_中秋国庆双节来临 祝CSDN所有开发者与网站节日快乐

亲爱的CSDN朋友们&#xff1a; 在这个金风送爽、丹桂飘香的美好时节&#xff0c;我们迎来了一年一度的中秋佳节。明月高悬&#xff0c;洒下银辉&#xff0c;照亮了我们心中的思念与祝福。 中秋&#xff0c;是团圆的象征。无论你此刻身在何处&#xff0c;心中那份对家的眷恋、对…

Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器

1、computed() 计算属性 在模板中绑定表达式只能用于简单的运算。如果运算比较复杂&#xff0c;可以使用 Vue.js 提供的计算属性&#xff0c;通过计算属性可以处理比较复杂的逻辑。 1.1 计算属性的应用 通过计算属性可以实现各种复杂的逻辑&#xff0c;包括运算、函数调用等…

laravel 查询数据对象转数组

这种的只能转化最外层的$pre_id_arr Db::table(Db::raw("($pre_id_arr_sql) as res"))->get()->toArray();如果需要把里边的都转了需要用下面这个方法 $pre_id_arr Db::table(Db::raw("($pre_id_arr_sql) as res"))->get()->map(function ($…

进程vs线程:高效并发编程的基石

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 在数据爆炸和计算需求日益增长的时代&#xff0c;"并发编程"已经不再是一种选择&#xff0c;而是成为了一种"刚需"。随着单核CPU的发展逐渐遇到瓶颈&#xff0c;多核CPU的出现为…

深入理解Java中的线程状态转换及关键同步方法

深入理解Java中的线程状态转换及关键同步方法 在现代软件开发中&#xff0c;多线程编程是实现高效、响应式应用程序的关键技术之一。理解线程的生命周期及其状态转换&#xff0c;对于编写健壮、性能优越的并发程序至关重要。本文将深入探讨Java中线程的各种状态转换&#xff0…

探索信号处理:使用傅里叶小波变换分析和恢复信号

在现代信号处理领域&#xff0c;傅里叶变换是分析和处理信号的一种基本工具。然而&#xff0c;传统的傅里叶变换在处理非平稳信号时存在局限性&#xff0c;因为它无法同时提供时间和频率的信息。为了克服这一挑战&#xff0c;傅里叶小波变换&#xff08;FSWT&#xff09;应运而…

爆改YOLOv8|使用MobileNetV4替换yolov8的Backbone

1&#xff0c;本文介绍 MobileNetV4 是最新的 MobileNet 系列模型&#xff0c;专为移动设备优化。它引入了通用反转瓶颈&#xff08;UIB&#xff09;和 Mobile MQA 注意力机制&#xff0c;提升了推理速度和效率。通过改进的神经网络架构搜索&#xff08;NAS&#xff09;和蒸馏…

java项目之中药实验管理系统(源码+文档)

项目简介 中药实验管理系统实现了以下功能&#xff1a; 中药实验管理系统的主要使用者管理员功能有个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;实验员管理&#xff0c;实验教学管理&#xff0c;在线学习管理&#xff0c;实验信息管理&#xff0c;实验预约…

C++速通LeetCode简单第16题-买卖股票的最佳时机

思路要点&#xff1a;假设当天卖&#xff0c;动态更新最低价格和最大利益 class Solution { public://要点&#xff1a;假设当天卖&#xff0c;动态更新最低价格和最大利益int maxProfit(vector<int>& prices) {int ans 0;int lowest prices[0];for(int i 1; i &…

bin | hex

hex bin 纯粹的程序数据&#xff0c;不包含&#xff1a;长度、地址、数据等信息 可以直接把数据赋值到单片机程序地址&#xff08;STM32 一般时0x8000 0000&#xff09; 应用场景 远程固件升级 比较 实际文件对比

Mybatis-plus-Generator 3.5.5 自定义模板支持 (DTO/VO 等) 配置

随着项目节奏越来越快&#xff0c;为了减少把时间浪费在新建DTO 、VO 等地方&#xff0c;直接直接基于Mybatis-plus 这颗大树稍微扩展一下&#xff0c;在原来生成PO、 DAO、Service、ServiceImpl、Controller 基础新增。为了解决这个问题&#xff0c;网上找了一堆资料&#xff…

【硬件模块】SHT20温湿度传感器

SHT20是一个用IIC通信的温湿度传感器。我们知道这个就可以了。 它支持的电压范围是2.1~3.6V&#xff0c;推荐是3V&#xff0c;所以如果我们的MCU是5V的&#xff0c;那么就得转个电压才能用了。 IIC常见的速率有100k&#xff0c;400k&#xff0c;而SHT20是支持400k的&#xff08…