一、组合框
1.1、定义
QComboBox提供了一种向用户呈现选项列表的方式,以占用最少的屏幕空间。 组合框是一个显示当前项目的选择小部件,可以弹出可选择项目的列表。 组合框可以是可编辑的,允许用户修改列表中的每个项目。 QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。如下:
1.2、属性
下面是组合框常用的属性,如下:
属性 | 功能 |
---|---|
count | 组合框中的项目数 |
currentData | 当前项目的数据 |
currentIndex | 当前项目的索引 |
editable | 是否可以编辑组合框。默认为 false。编辑的效果取决于插入策略 |
insertPolicy | 可编辑时插入的项目应出现在组合框中的位置的策略。默认值为 InsertAtBottom,即新项目将出现在项目列表的底部。 |
maxCount | 组合框中允许的最大项目数。 |
maxVisibleItems | 组合框屏幕上允许的最大项目数,默认为 10。 |
1.3、成员方法
1.3.1、添加item
两个重载addItem() 函数,第二个版本可以添加图标,两个函数都有一个可选的 QVariant 类型的参数 userData,可以利用这个变量存储用户定义数据。如下:
void addItem (const QString &text, const QVariant &userData = QVariant())
void addItem (const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
1.3.2、默认显示
可以设置默认显示项,如下:
void setCurrentIndex(int index); // 设置默认显示
int currentIndex() const; // 获取当前显示的item对应的index
1.3.3、获取列表项
获取指定列表项对应的索引及数据,如下:
int currentlndex(); //返回当前项的序号,第一个项的序号为0。
QString currentText(); //返回当前项的文本
QVariant currentData(int role = Qt::UserRole); //返回当前项的关联数据
QString itemText(int index); // 返回指定索引号的项的文本
QVariant itemData(int index, int role = Qt%:UserRole); // 返回指定索引号的项的关联数据。
int count(); // 返回项的个数。
1.4、信号
QComboBox 组件上选择项发生变化时,会发射下面这些信号,如下:
void currentIndexChanged(int index)
void currentIndexChanged(const QString &text)
void currentTextChanged(const QString &text)
注意:前两个信号为重载函数,QT5新版的信号槽语法要使用函数指针语法连接到这个信号