Qt控件——组合框QComBox

一、属性和方法

1、文本

// 获取当前条目的索引和文本
int currentIndex() const
QString currentText() const

// 获取和设置指定索引条目的文本    
QString itemText(int index) const
void setItemText(int index, const QString &text)

2、图标

// 获取和设置对应索引条目的图标
QIcon itemIcon(int index) const
void setItemIcon(int index, const QIcon &icon)

3、插入和删除

// 一次新增一个条目
void addItem(const QString &text, const QVariant &userData = QVariant())
void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
    
// 一次新增多个条目    
void addItems(const QStringList &texts)
// 一次插入一个条目
void insertItem(int index, const QString &text, const QVariant &userData = QVariant())
void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant())

// 一次插入一个条目
void insertItems(int index, const QStringList &list)
// 获取和设置插入策略
QComboBox::InsertPolicy insertPolicy() const
void setInsertPolicy(QComboBox::InsertPolicy policy)

常用的插入策略有:

QComboBox::NoInsert 不插入
QComboBox::InsertAtTop 作为第一条条目插入(替换原第一条条目)
QComboBox::InsertAtCurrent 替换当前条目
QComboBox::InsertAtBottom 在最后一个条目之后插入
QComboBox::InsertAfterCurrent 在当前条目之后插入
QComboBox::InsertBeforeCurrent 在当前条目之前插入
QComboBox::InsertAlphabetically 按英文字母顺序插入

4、信号槽

// 当前选中的条目变化时,会发射这两个信号
void currentIndexChanged(int index)
void currentTextChanged(const QString &text)

二、组合框QComBox案例

1、UI界面布局

2、核心代码实现

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

QStringList gdCityList = {"广州市", "深圳市", "珠海市", "东莞市"};
QStringList zjCityList = {"杭州市", "宁波市", "温州市", "绍兴市"};
QStringList sdCityList = {"济南市", "青岛市", "烟台市", "威海市"};
QStringList hbCityList = {"石家庄市", "保定市", "廊坊市", "衡水市"};

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 添加省份
    ui->comboBox_sheng->addItem("广东省");
    ui->comboBox_sheng->addItem("浙江省");
    ui->comboBox_sheng->addItem("山东省");
    ui->comboBox_sheng->addItem("河北省");

    // 默认选中第一项-广东省
    ui->comboBox_sheng->setCurrentIndex(0);

    // 添加城市
    ui->comboBox_cheng->addItems(gdCityList);

    //信号槽
    connect(ui->lineEdit_ming,&QLineEdit::textChanged,this,&Widget::onLineEditChanged);
}

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

void Widget::on_comboBox_sheng_currentIndexChanged(int index)
{
    ui->comboBox_cheng->clear();

    switch (index) {
        case 0:
            ui->comboBox_cheng->addItems(gdCityList);
            break;
        case 1:
            ui->comboBox_cheng->addItems(zjCityList);
            break;
        case 2:
            ui->comboBox_cheng->addItems(sdCityList);
            break;
        case 3:
            ui->comboBox_cheng->addItems(hbCityList);
            break;
        default:
            break;
    }
    // 获取姓名、省份、城市
    QString name = ui->lineEdit_ming->text();
    QString province = ui->comboBox_sheng->currentText();
    QString city = ui->comboBox_cheng->currentText();

    ui->lineEdit_result->setText(name + ", 来自" + province + city);
}

void Widget::on_comboBox_cheng_currentIndexChanged(int index)
{
    QString name = ui->lineEdit_ming->text();
    QString province = ui->comboBox_sheng->currentText();
    QString city = ui->comboBox_cheng->currentText();

    ui->lineEdit_result->setText(name + ", 来自" + province + city);
}

void Widget::onLineEditChanged()
{
    QString name = ui->lineEdit_ming->text();
    QString province = ui->comboBox_sheng->currentText();
    QString city = ui->comboBox_cheng->currentText();

    ui->lineEdit_result->setText(name + ", 来自" + province + city);
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琪琪猫不会嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值