繁体   English   中英

在QTableWidget中将列编辑为组合框

[英]Column edit as Combo Box in QTableWidget

我在一个单元格中有颜色数据。 当我双击该单元格时,可能只能通过从“组合框”中选择值来对其进行编辑?

但是,此组合框并非始终可见-仅当我单击两次时间时。

问题:

  1. 如何使只有一列是可编辑的(不是所有列都可以!)
  2. 当我双击此列时,QTableWidget将显示QComboBox以及要插入此单元格的值。 - 怎么做 ?

您可以使用自定义itemDelegates进行此操作。

成功的方式将是:

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

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

现在,让我们谈谈仅将一列设置为可编辑状态。 您可以选择。

方法1.在模型级别执行。 让您的模型在flags(QModelIndex)返回适当的标志,并使仅Your column可编辑。

方式2。查看级别。 在这种情况下,您应该创建一个“哑” itemDelegate,它根本不会创建编辑器,并将其分配给所有其他列。

就个人而言,我喜欢方式1。但这是供您选择的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM