c – 如何使用具有两列的模型获取QComboBox的当前值?
发布时间:2020-12-16 10:00:19 所属栏目:百科 来源:网络整理
导读:我有一个QSboBox,其QSqlQueryModel作为其模型.该模型由数据库构成 SELECT type_id,输入FROM类型,其中type_id为int,type为varchar. 我使用setModelColumn(1)函数设置QComboBox可见列,以查看实际类型而不是索引,但是当选择值时,我需要检索type_id,我不知道如何
我有一个QSboBox,其QSqlQueryModel作为其模型.该模型由数据库构成
SELECT type_id,输入FROM类型,其中type_id为int,type为varchar. 我使用setModelColumn(1)函数设置QComboBox可见列,以查看实际类型而不是索引,但是当选择值时,我需要检索type_id,我不知道如何实现它.我不能在这里使用currentIndex()函数,因为QComboBox的当前索引对我来说没用. 我认为正确的函数是currentData(),但我无法弄明白,如何从第一列获取数据… 解决方法
另一个“解决方案”.我想出了以下解决方法:首先,我将visible列设置为0,检索type_id,然后将visible列设置为1.
ui->comboType->setModelColumn(0); int type_id = ui->comboType->currentText().toInt(); ui->comboType->setModelColumn(1); 我不知道这样做有多正确,但它确实有效. 编辑: int row = myComboBox->currentIndex(); QModelIndex idx = myComboBox->model()->index(row,0); // first column QVariant data = myComboBox->model()->data(idx); int type_id = data.toInt(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |