列编辑为QTableWidget中的组合框



我在单元格中获得了颜色数据。这是可能的,当我双击这个单元格,我可以编辑它只能通过选择值从组合框?

但是这个组合框不是一直可见的-只有当我双击时间

问题:

  1. 如何使只有一个列是可编辑的(不是所有列!)
  2. 当我双击这个列QTableWidget显示QComboBox与我的值插入到这个单元格。-怎么做?

你可以这样做,使用自定义itemdelegate。

成功之路将是:

  1. 子类QAbstractItemDelegate,重新实现createEditor,并确保它创建您喜欢的组合框
  2. 使用setItemDelegateForColumn并指定一个列与您的颜色内容。

提示:您甚至可以自定义显示您的颜色数据,而不仅仅是编辑!

现在,让我们讨论一下如何只设置一个可编辑的列。你可以选择。

1。在模型级别进行。让你的模型在flags(QModelIndex)中返回适当的标志,并且只使你的列可编辑。

2。视图的水平。在这种情况下,你应该创建一个"哑"itemDelegate,它根本不创建编辑器,并将其分配给所有其他列。

就我个人而言,我喜欢方法一。但这是你自己选择的

最新更新