我在单元格中获得了颜色数据。这是可能的,当我双击这个单元格,我可以编辑它只能通过选择值从组合框?
但是这个组合框不是一直可见的-只有当我双击时间
问题:
- 如何使只有一个列是可编辑的(不是所有列!)
- 当我双击这个列QTableWidget显示QComboBox与我的值插入到这个单元格。-怎么做?
你可以这样做,使用自定义itemdelegate。
成功之路将是:
- 子类
QAbstractItemDelegate
,重新实现createEditor
,并确保它创建您喜欢的组合框 - 使用
setItemDelegateForColumn
并指定一个列与您的颜色内容。
提示:您甚至可以自定义显示您的颜色数据,而不仅仅是编辑!
现在,让我们讨论一下如何只设置一个可编辑的列。你可以选择。
1。在模型级别进行。让你的模型在flags(QModelIndex)
中返回适当的标志,并且只使你的列可编辑。
2。视图的水平。在这种情况下,你应该创建一个"哑"itemDelegate,它根本不创建编辑器,并将其分配给所有其他列。
就我个人而言,我喜欢方法一。但这是你自己选择的