基本函数
cbox = new QComboBox(groupBox);
cbox->setObjectName("cbox_Simple");
QIcon ico("XX.ico");
cbox->addItem(icon,"text",QVariant(val));
QStringList strList;
strList<<"北京"<<"上海"<<"天津"<<"河北省"<<"山东省"<<"山西省";
cbox->addItems(strList);
ui->cbox_Simple->currentText();
ui->cbox_Simple->currentIndex();
ui->cbox_Simple->itemIcon(ui->cbox_Simple->currentIndex());
ui->cbox_Simple->insertItem(ui->cbox_Simple->currentIndex(),"new",data);
for(int i=0;i<10;i++)
ui->cbox_Simple->removeItem(0);
ui->cbox_Simple->setCurrentText("XX")
ui->cbox_Simple->setCurrentIndex(3)
edit骗局:comboBox的lineEdit
其实不是直接更改item的text,而是只能在当前item处输入,若输入的text有对应的,那么就切换到对应的item,
若没有则直接append一个新的到cbox中(相当于可视化的setText)
current的骗局:currentIndex和currentText
对于get,它们俩就是获取当前item的index或text罢了
对于set,它们俩就是两种不同的查找方法罢了(一个通过索引一个通过text来查找对应的item),然后设置当前item
为查找到的item
对于changed信号,可以理解为只有一个currentItemChanged信号,但是有两个不同参数的版本,分别是:
void currentItemChanged(const int& index)和void currentItemChanged(const QString& str)
若真要更改item,则使用
cbox->setItemData/setItemText(index,...)
信号槽
void Combo::on_cbox_City_currentIndexChanged(const int& index)
{
QString str=ui->cbox_City->itemText(index)
}
void Combo::on_cbox_City_currentTextChanged(const QString &arg1)
{
QString str=ui->cbox_City->currentData().toString();
ui->Text->appendPlainText(arg1+" Zone:"+str);
}
void Combo::on_cbox_City_editTextChanged(const QString &arg1)