QComboBox小部件是一个组合按钮和弹出列表。
如:
QComboBox提供了一种向用户显示选项列表的方法,这种方法占用最少的屏幕空间。
combobox是一个显示当前项的选择小部件,可以弹出可选项的列表。组合框可以编辑,允许用户修改列表中的每个项。
组合框可以包含像素图和字符串;
insertItem()和setItemText()函数被适当地重载。对于可编辑的组合框,提供了clearEditText()函数,用于在不更改组合框内容的情况下清除显示的字符串。
如果组合框的当前项发生更改,将发出两个信号:currentIndexChanged()和activated()。currentIndexChanged()总是发出,无论更改是通过编程方式完成的还是通过用户交互完成的,而activated()只在更改是由用户交互引起时发出。当用户突出显示combobox弹出列表中的项目时,将发出高亮显示的()信号。
这三个信号都有两个版本,一个带有QString参数,另一个带有int参数。如果用户选择或突出显示一个pixmap,只会发出int信号。无论何时修改可编辑组合框的文本,都会发出editTextChanged()信号。
第一步:先到UI界面拖一个QComBox部件
第二步:添加下拉列表
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QStringList str;
str << "老一" << "老二" << "老三"<< "老四";
ui->comboBox->insertItems(0, str);
}
运行结果:
第三步:设置一下菜单的字体
QFont font( "Microsoft YaHei", 10, 75); //第一个属性是字体(微软雅黑),第二个是大小,第三个是加粗(权重是75),
ui->comboBox->setFont(font);
运行结果:
第四步:插入图标
ui->comboBox->setItemIcon(1, QIcon("://image/menu.png"));
下拉列表是从0开始的。
第五步:插入项目
ui->comboBox->insertItem(1, QString("老六"));
运行结果:
第六步:添加信号与槽
connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboBoxIndexChanged(int))); //实现信号与槽的连接
void Widget::comboBoxIndexChanged(int)
{
qDebug()<<ui->comboBox->currentText()<<endl; //输出当前选项的字符串
}
currentIndexChanged是当前选项改变的信号。
常用函数:
addItem() //增加一个下拉选项
setMaxVisibleItems() //设置下拉项最多显示几个,超过个数使用滚动条。
setInsertPolicy() //设置插入方式
currentIndex() //当前项索引
currentText() //当前项文本
findText("abc") //获得adc内容的索引
currentIndexChanged(int) //当前索引改变信号
insertItem() //插入项目
setItemIcon() //设置图标
setFont() //设置字体