【发布时间】:2012-01-07 18:29:48
【问题描述】:
我有 QTableView,其中一列中有 QComboBox。组合框显示来自矢量的数据,当我单击按钮时,该矢量会得到更新。 当我启动应用程序时,组合框会显示向量中的所有项目。现在我按下按钮(向矢量添加更多项目),但组合框不反映矢量中的新数据。它仍然显示旧数据。一旦矢量更新,我也会发出 dataChanged() ,但我没有看到任何变化。 data() 函数确实在模型中调用,它返回向量的所有元素,但 setEditorData 没有在委托中调用。
我是不是错过了什么。
谢谢,
开发
【问题讨论】:
-
如果我理解正确,您想更改 QComboBox 下拉列表中的项目?如果是这样,您必须手动更新它们,因为它不会跟踪对其设置的项目列表的更改。如果您发布一些代码如何将向量设置为组合框以及如何更新它,将会有所帮助。
-
是的,我想在更新矢量时更改 QComboBox 中的项目。这就是我所做的,我有一个向量,我在初始化时添加了 3 个项目。在模型的 ::data() 中,我返回包含这些项目的 QStringList。它显示正常。现在,当单击按钮时,我在向量中添加了更多项目。在向量中添加新项目后,我还会发出模型的 dataChanged() 。我想我必须在模型中捕获该信号并更新组合框的内容。让我知道是否有更好的方法来做到这一点。谢谢
标签: qt qtableview qcombobox