【Qt】ComboBox

QComboBox是Qt中用于显示下拉列表框的控件,可以从预定义的选项中选择一个或多个选项

常用属性

属性说明
currentText当前选中的文本
currentIndex当前选中的条目的下标
editable

是否允许修改

设置为true时,可以直接输入,也可以搭配validator进行验证

iconSize下拉框图标的大小
maxCount最多允许多少个条目

核心方法

方法说明
addItem(const QString&)添加一个条目
currentIndex()

获取当前条目的下标

从0开始计算,如果没有条目被选中,值为-1

currentText()获取当前条目的文本内容

核心信号

信号说明

activated(int)

activated(const QString&)

当用户通过下拉框选择一个选项时发出,重复选择相同的选项也会触发

currentTextChanged(const QString)当前下拉框的文本改变时触发,通过下拉框和输入改变文本都会触发

currentIndexChanged(int)

currentIndexChanged(const QString&)

当选项改变时发出,重复选择相同的选项不会触发

highlighted(int)

highlighted(const QString&)

鼠标扫过某个选项时,选项有高亮,发出该信号

示例:麦麦当点餐,可通过下拉框选择,也可直接输入,点击“提交”按钮对订单进行打印

代码:

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //主标题居中
    ui->label->setAlignment(Qt::AlignHCenter);
    //给主食添加选项
    ui->comboBox_staple->addItem("麦麦鸡腿堡");
    ui->comboBox_staple->addItem("香辣鸡腿堡");
    ui->comboBox_staple->addItem("双层吉士堡");

    //给小食添加选项
    ui->comboBox_snacks->addItem("鸡块");
    ui->comboBox_snacks->addItem("翅根");
    ui->comboBox_snacks->addItem("小鸡腿");

    //给饮料添加选项
    ui->comboBox_drink->addItem("雪碧");
    ui->comboBox_drink->addItem("可乐");
    ui->comboBox_drink->addItem("芬达");

    //设置可编辑
    ui->comboBox_staple->setEditable(true);
    ui->comboBox_snacks->setEditable(true);
    ui->comboBox_drink->setEditable(true);

}

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


void Widget::on_comboBox_staple_activated(const QString &arg1)
{
    ui->label_staple->setText("主食:" + arg1);
}

void Widget::on_comboBox_snacks_activated(const QString &arg1)
{
    ui->label_snacks->setText("小食:" + arg1);
}

void Widget::on_comboBox_drink_activated(const QString &arg1)
{
    ui->label_drink->setText("饮料:" + arg1);
}

void Widget::on_pushButton_clicked()
{
    qDebug() << "主食:" << ui->comboBox_staple->currentText()
             << "小食:" << ui->comboBox_snacks->currentText()
             << "饮料:" << ui->comboBox_drink->currentText();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值