0
点赞
收藏
分享

微信扫一扫

十七、在QComboBox中显示树状图

一、基本思路

十七、在QComboBox中显示树状图_数据库
核心思想就是:

ui->comboBox->setModel(ui->treeView->model());
ui->comboBox->setView(ui->treeView);

将 QComboBox 的数据模型设置为 树的数据模型,将视图设置为树状图

二、问题

上面的操作选择都没有问题,但是我们将选择的数据保存到数据库后,再从数据库读取数据,塞到 QComboBox 就出现了问题,总是显示不正确,解决办法如下:

//遍历 QTreeWidgetItem,根据文本确认选中的树状图节点,并显示在下拉框中
QTreeWidgetItemIterator iterator(unitTree); //unitTree 就是 QComboBox 中嵌入的 QTreeWidget
while (*iterator) {
//利用迭代器,遍历,比较
if ((*iterator)->text(0) == tableModel->item(currentRow, COLUMN_BDNM)->text()) {
//获取对应的 item
QTreeWidgetItem *item = (*iterator);
//设置为当前 item
unitTree->setCurrentItem(item);
//将当前选中的树状图节点文本显示在下拉框中(很重要)
QModelIndex index = unitTree->currentIndex();
ui->cbUnitName->setRootModelIndex(index.parent());
ui->cbUnitName->setModelColumn(index.column());
ui->cbUnitName->setCurrentIndex(index.row());
ui->cbUnitName->setRootModelIndex(QModelIndex());
break;
}
++iterator;
}


举报

相关推荐

0 条评论