void Widget::on_btnIniItems_clicked()
{ //"初始化列表"按键
QIcon icon;
icon.addFile(":/images/icons/aim.ico");
ui->comboBox->clear(); //清除列表
for (int i=0;i<20;i++)
ui->comboBox->addItem(icon,QString::asprintf("Item %d",i)); //带图标
//ui->comboBox->addItem(QString::asprintf("Item %d",i)); //不带图标
}
添加一个项时可以指定一个图标,图标来源于资源文件。ui->comboBox->clear(); QStringList strList; strList<<"北京"<<"上海"<<"天津"<<"河北省"<<"山东省"<<"山西省"; ui->comboBox->addItems(strList);添加具有用户数据的项 QComboBox::addltem() 函数的两种参数的原型定义如下:
void addItem (const QString &text, const QVariant &userData = QVariant())
void addItem (const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
void Widget::on_btnIni2_clicked()
{//初始化具有自定义数据的comboBox
//QMap自动根据 key排序
QMap<QString, int> City_Zone;
City_Zone.insert("北京",10);
City_Zone.insert("上海",21);
City_Zone.insert("天津",22);
City_Zone.insert("大连",411);
City_Zone.insert("锦州",416);
City_Zone.insert("徐州",516);
City_Zone.insert("福州",591);
City_Zone.insert("青岛",532);
ui->comboBox2->clear();
foreach(const QString &str,City_Zone.keys())
ui->comboBox2->addItem(str,City_Zone.value(str));
}
这里定义了一个关联容器类 QMap<QString,int> City_Zone,用于存储<城市,区号>映射表。为 City_Zone 填充数据后,给 comboBox2 添加项时,使用了 foreach 关键字遍历 City_Zone.keys()。添加项的语句如下:
ui->comboBox2->addItem(str,City_Zone.value(str));
城市名称作为项显示的字符串,电话区号作为项关联的用户数据,但是在列表框里只能看到城市名称。
void currentlndexChanged(int index)
void currentlndexChanged(const QString &text)
currentIndexChanged(const QString &text) 信号编写槽函数。窗体上只存储字符串列表的 comboBox 的槽函数代码如下:
void Widget::on_comboBox_currentIndexChanged(const QString &arg1)
{
ui->plainTextEdit->appendPlainText(arg1);
}
关联有城市区号的 comboBox2 的槽函数代码如下:
void Widget::on_comboBox2_currentIndexChanged(const QString &arg1)
{
QString zone=ui->comboBox2->currentData().toString() ;//项关联的数据
ui->plainTextEdit->appendPlainText(arg1 + ":区号=" + zone);
}
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有