• 【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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 生成按钮的槽函数,并修改槽函数
    void Widget::on_pushButton_clicked()
    {
        qDebug() << "饮料选择: " << ui->comboBox->currentText();
        qDebug() << "零食选择: " << ui->comboBox_2->currentText();
        qDebug() << "烟酒选择: " << ui->comboBox_3->currentText();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1. 运行代码查看结果
      在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    「USACO 做题笔记」USACO 2011 Dec Bronze
    jupyter notebook在base和其他虚拟环境下打开异常的问题
    什么是函数重载?C语言中是否支持函数重载?
    SpringMVC总结_从RESTful到拦截器
    去哪儿网2023正式秋招啦,来这里可以内推
    深入React源码揭开渲染更新流程的面纱
    【Django-DRF】多年md笔记第5篇:Django-DRF的Request、Response和视图详解
    LDR6020在Type-C手机同时充电与USB2.0数据传输方案
    java版Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码
    Ubuntu18.04 系统安装Anaconda
  • 原文地址:https://blog.csdn.net/m0_74014525/article/details/138193274