【发布时间】:2017-04-23 16:12:15
【问题描述】:
使用基于 PyQt4 的 QTreeView,我创建了 2 个 xml 树小部件。从两棵树中,想要比较选定的项目并突出显示差异。例如,
左字符串:“比较字符串” 右字符串:“ComPareStringRight”
对差异的观察:
- Left[0:2] 与 Right[0:2] 相同
- 左[3:3] 与右[3:3] 不同
- 左[4-12]与右[4-12]相同
- Left[13-17] 不存在于 Left
现在,要根据以下设置颜色:
- 匹配字符 - 默认
- 不同的字符 - 橙色
- 添加字符 - 绿色
- 已删除字符 - 红色
我该如何实现呢?无法找到任何可供参考的参考实现。请提出前进的方向。
class QCustomDelegate (QItemDelegate): global showDiffPaint def paint (self, painterQPainter, optionQStyleOptionViewItem, indexQModelIndex): column = indexQModelIndex.column() if showDiffPaint == 1: QItemDelegate.paint(self, painterQPainter, optionQStyleOptionViewItem, indexQModelIndex) else: QItemDelegate.paint(self, painterQPainter, optionQStyleOptionViewItem, indexQModelIndex)
【问题讨论】: