使用列

时间:2016-04-07 12:04:17

标签: c++ qt combobox tableview

我创建了自己的TableView并为其实现了模型等等。最后,我开始编辑值:它已经很好地重新实现了flagssetData函数,但我只能编辑字符串/ int值。我需要添加从组合框中选择的可能性。我看到this one等主题,但QTableView没有setCellWidget方法。

是否有可能用QTableView实现它,或者我必须切换到'TableWidget'并重新做我的工作(这会有问题)?

2 个答案:

答案 0 :(得分:2)

QTableView有一个方法setIndexWidget()来显示特定单元格中的小部件。但在您的情况下,您应该使用从QItemDelegate派生的委托并重新实现createEditor()方法来创建您的组合框。

答案 1 :(得分:2)

要添加到Tomas的答案中,您还需要重新实现setEditorDatasetModelData函数。

  • setEditorData用于从模型获取数据并设置编辑器的初始值。
  • setModelData根据在编辑器中输入的数据更新模型中的数据。