Qt QComboBox

﹏ヽ暗。殇╰゛Y 2022-10-31 05:23 246阅读 0赞

1.QComboBox简介

QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。

2.常用API

添加带图标的项

  1. QIcon icon;
  2. icon.addFile(":/images/icon.jpg");
  3. ui->comboBox->addItem(icon,"四川");
  4. ui->comboBox->addItem(icon,"湖南");
  5. ui->comboBox->addItem(icon,"湖北");

添加不带图标的项

  1. QStringList strList;
  2. strList<<"四川"<<"湖南"<<"湖北";
  3. ui->comboBox->addItems(strList);

添加用户自定义数据

  1. //添加带自定义数据
  2. QMap<QString, QString> City_Zone;
  3. City_Zone.insert("四川","sichuan");
  4. City_Zone.insert("湖南","hunan");
  5. City_Zone.insert("湖北","hubei");
  6. foreach(const QString &str,City_Zone.keys())
  7. ui->comboBox->addItem(str,City_Zone.value(str));
  8. //返回当前项的序号,第一个项的序号为0。
  9. int currentlndex()
  10. //返回当前项的文字。
  11. QString currentText()
  12. //返回当前项的关联数据
  13. QVariant currentData(int role = Qt::UserRole)
  14. //返回指定索引号的项的文字。
  15. QString itemText(int index)
  16. //返回指定索引号的项的关联数据。
  17. QVariant itemData(int index, int role = Qt::UserRole)
  18. //返回项的个数。
  19. int count()

在一个 QComboBox 组件上选择项发生变化时,会发射如下两个信号:

  1. void currentlndexChanged(int index)
  2. void currentlndexChanged(const QString &text)

3.示例

选择combobox中的一项,在textEdit上打印自定义的数据

20210221233540201.gif

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QMap>
  4. Widget::Widget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::Widget)
  7. {
  8. ui->setupUi(this);
  9. //初始化
  10. // QStringList strList;
  11. // strList<<"四川"<<"湖南"<<"湖北";
  12. // ui->comboBox->addItems(strList);
  13. //添加带自定义数据
  14. QMap<QString, QString> City_Zone;
  15. City_Zone.insert("四川","sichuan");
  16. City_Zone.insert("湖南","hunan");
  17. City_Zone.insert("湖北","hubei");
  18. foreach(const QString &str,City_Zone.keys())
  19. ui->comboBox->addItem(str,City_Zone.value(str));
  20. }
  21. Widget::~Widget()
  22. {
  23. delete ui;
  24. }
  25. void Widget::on_comboBox_currentIndexChanged(const QString &arg)
  26. {
  27. QString py=ui->comboBox->currentData().toString() ;//项关联的数据
  28. QString str = QString("当前选择项为 ")+arg + " = "+py;
  29. ui->textEdit->setText(str);
  30. }

4.设置style常见问题

设置style常见问题

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++ Qt QComboBox详细使用教程

    C++ Qt QComboBox详细使用教程 QComboBox是Qt框架中的一个常用控件,它提供了一个下拉列表框,允许用户从预定义的选项中进行选择。本教程将详细介绍如何在C