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号
广州京杭网络科技有限公司 版权所有