Qt常用控件之下拉框QComboBox
下拉框QComboBox
QComboBox
是一个下拉框控件。
1. QComboBox属性
属性 | 说明 |
---|---|
currentText | 当前选中的文本。 |
currentIndex | 当前选中的条目下标(从 0 开始,如果没有条目被选中则该值为 -1)。 |
editable | 是否允许被修改。为 true 时,QComboBox 的行为接近 QLineEdit ,也可以设置 validator 。 |
iconSize | 下拉框图标(小三角)的大小。 |
maxCount | 最多允许有多少个条目。 |
2. QComboBox信号
信号 | 说明 |
---|---|
activated(int) activated(constQString&text) | 当用户选择了一个选项时触发该信号。这个时候相当于用户点开下拉框,并且鼠标划过某个选项,但此时还没有确认做出选择。 |
currentIndexChanged(int) currentIndexChanged(constQString &text) | 当前选项改变时触发该信号。此时用户已经明确的选择了⼀个选项,用户操作或者通过程序操作都会触发这个信号。 |
editTextChanged(constQString& text) | 当编辑框中 |
3. QComboBox方法
方法 | 说明 |
---|---|
addItem(constQString&) | 添加一个条目。 |
currentIndex() | 获取当前条目的下标(从 0 开始,如果没有条目被选中则该值为 -1)。 |
currentText() | 获取当前条目的文本内容。 |
4. QComboBox制作出生年月选择菜单
可以使用 QString::number()
将数字转为 QString
类型:
#include "widget.h"
#include "ui_widget.h"
#include <string>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
for(int i=0;i<50;i++)
{
ui->comboBox_year->addItem(QString::number(i+1974));
}
for(int i=1;i<=12;i++)
{
ui->comboBox_month->addItem(QString::number(i));
}
}
Widget::~Widget()
{
delete ui;
}
日的判断太麻烦了没有写。
在使用 C++ 的流使用文件操作添加条目到 QComboBox
时,可能会涉及到 std::string
转 QString
的问题,可以使用 QString::fromStdString()
接口解决。同样的,需要将条目内容存入文件,也有 QString::toStdString()
可用。