QT QCombobox的问题,additem()函数的问题。。求解答
ui.combobox->clear();ui.combobox->addItem(tr("全部"),"(4,6,7)");ui.combobox->addItem(tr...
ui.combobox->clear();
ui.combobox->addItem(tr("全部"), "(4, 6, 7)");
ui.combobox->addItem(tr("中国"), "(6, 7)");
ui.combobox->addItem(tr("美国"), "(4)");
后面的(4,6,7)不是索引啊,这是4代表美国,6和7都代表中国。可是为什么这么用呢 展开
ui.combobox->addItem(tr("全部"), "(4, 6, 7)");
ui.combobox->addItem(tr("中国"), "(6, 7)");
ui.combobox->addItem(tr("美国"), "(4)");
后面的(4,6,7)不是索引啊,这是4代表美国,6和7都代表中国。可是为什么这么用呢 展开
1个回答
展开全部
void QComboBox::addItem ( const QString & text, const QVariant & userData= QVariant() )
Adds an item to the combobox with the given text, and containing the specified userData (stored in the Qt::UserRole). The item is appended to the list of existing items.
所以后面都不是索引,使用户自定义的数据,具体意义看用户定义。
Adds an item to the combobox with the given text, and containing the specified userData (stored in the Qt::UserRole). The item is appended to the list of existing items.
所以后面都不是索引,使用户自定义的数据,具体意义看用户定义。
追问
怎么理解呢?我在combobox里添加了(美国,和4)这两个字符串,并且美国和4一一对应。那我如果读取的currenttext是美国,是不是也就读取了4这个标志。那么需要用split将其分开读取么???
追答
不是,使用currentText读取的就是“美国”,读后面的内容(4)需要用itemData ( int index, int role = Qt::UserRole ) 来读,其中index是Item的索引。
QVariant QComboBox::itemData ( int index, int role = Qt::UserRole ) const
Returns the data for the given role in the given index in the combobox, or QVariant::Invalid if there is no data for this role.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询