小部件作为 QTableView 中的数据

Widgets as data in QTableView

我正在尝试制作一个基于 table 的界面,如下所示:

| QComboBox | QPushButton | Empty       |
| Some data | Some data   | QPushButton |
| Some data | Some data   | Empty       | (all additional rows resemble this one)

在第一行中,我想要一个 QComboBox,其中包含一些基于另一个函数的 return 值定义的选择,并且 QPushButton 附加到触发器将插入或删除数据。

假设我可以自己生成 QComboBoxQPushButton,我怎样才能将它们插入这些位置的 QTableView?我目前有一个模型可以正确存储需要在标记为 "Some data" 的位置显示的数据,并且 return 没有特殊或 "Empty" 位置的数据,我有一个 QStyledItemDelegate 应该为我插入这些小部件,但它只会在我双击该字段时插入它们(我想这是 createEditor 的触发器)。

想通了。

QAbstractItemView(以及扩展名 QTableView)有一个名为 setIndexWidget 的方法,可用于将小部件放置在某个位置。通过使用该方法,我可以在初始化时插入适当的小部件,而无需完全依赖委托。