QStyledItemDelegate 工具提示处理+ 内部状态

问题描述

我第一次使用“花哨的”QStyledItemDelegate 来绘制和控制 QTableView 列中的多个按钮。 到目前为止,paint + editorEvent 方法很好,但有两个小问题/未解决的想法:

  • 我无法理解如何处理工具提示...找不到比 helpEvent 的 Qt 文档更明确的信息,但不确定如何使用它。我尝试使用 view->model()->setData(),但我的模型不应该是可编辑的,所以我想我可以在适当的时候“绘制”工具提示,但不知道如何?

  • 此外,我找到了一些解决方法,但我想检查一下我是否忽略了另一种方法:我根据某些模型数据值绘制/处理不同按钮的事件。但是,似乎所有 QStyledItemDelegate 方法都是常量,因此我无法编辑内部数据(以避免paint和editorEvent之间的代码重复,例如在paint中设置标志并根据标志值对事件做出相应反应......)。我错过了什么吗? (没有 createEditor/setEditorData 方法?)

解决方法

如果您想显示表格索引的工具提示,只需覆盖模型类的 data() 方法并返回 Qt::ToolTipRole 角色的文本。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...