combobox - 正确显示自定义 QItemDelegates

标签 combobox delegates qtableview qstandarditemmodel

我正在尝试使用我在 Google 中找到的简单示例代码。
一切正常,但一旦我为列设置了委托(delegate),它就会显示错误。
这是 line我将“Bank”字符串设置为两行和 comboboxdelegate.cpp 的值
这是 MainWindow 的屏幕截图
screenshot
问题是,如果数据存储在模型中,为什么不能正常显示?因为如果我使用组合框更改值,单元格中显示的内容仍然如屏幕截图所示。但是按下按钮显示模型中的数据已更改

附言我不担心编辑器不会持续可见,我担心显示的单元格值是其他东西。

最佳答案

我必须将 QString text = items[index.row()].c_str() 行更改为 index.data(Qt::DisplayRole).toString().
因此,在绘制委托(delegate)时,Qt 将访问存储在模型中的数据,而不是委托(delegate)的选项向量中
我还必须将 model->setData(index, _editor->currentIndex()); 更改为 model->setData(index, _editor->currentText());

关于combobox - 正确显示自定义 QItemDelegates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48833094/

相关文章:

sqlite - Qt/QTableView/SQLite如何连接?

c# - 刷新数据绑定(bind)组合框的内容 C# 问题

c# - MVP Winforms 和文本框组合框值

php - 当组合框 #1 更改值时刷新页面和组合框 #2 内容

iphone - NSNotificationCenter 与委派(使用协议(protocol))?

c++ - 委托(delegate)构造函数不能有其他内存初始化器 - 错误

delphi - 为什么不能在 64 位 Delphi 中获取嵌套局部函数的地址?

combobox - 如何将值更新到 ttk Python33 中 Combobox 下的列表框

python - PyQt:如何调整 QTableView header-size/column-width

python - 如何控制QTableView Item的轮廓