Aba*_*Aba 5 c++ qt qcombobox qt5 qt5.5
我有一个QComboBox以 aQSqlQueryModel作为模型的。该模型是根据数据库构建的,其中
SELECT type_id, type FROM types是type_id,int类型是 a varchar。
我使用QComboBox该函数设置可见列setModelColumn(1),以查看实际类型,而不是索引,但是当选择一个值时,我需要检索,type_id但我不知道如何实现。我不能在这里使用该currentIndex()函数,因为该函数的当前索引QComboBox对我来说没有用。
我认为正确的函数是currentData(),但我无法弄清楚如何从第一列获取数据......
另一个“解决方案”。我想出了以下解决方法:首先,我将可见列设置为0,检索type_id,然后将可见列设置回1。
ui->comboType->setModelColumn(0);
int type_id = ui->comboType->currentText().toInt();
ui->comboType->setModelColumn(1);
Run Code Online (Sandbox Code Playgroud)
我不知道这样做是否正确,但它确实有效。
编辑: 最后,我找到了解决方案。我只需要修改一点king_nak -s 答案。谢谢国王纳克!
int row = myComboBox->currentIndex();
QModelIndex idx = myComboBox->model()->index(row, 0); // first column
QVariant data = myComboBox->model()->data(idx);
int type_id = data.toInt();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4194 次 |
| 最近记录: |