我实现了非常简单的语法突出显示工具,并将其与QTextEdit一起使用。
class MyHighlighter(QtGui.QSyntaxHighlighter):
def __init__(self, parent):
QtGui.QSyntaxHighlighter.__init__(self, parent)
self.Rules = []
classFormat = QtGui.QTextCharFormat()
classFormat.setFontWeight(QtGui.QFont.Bold)
classFormat.setForeground(QtCore.Qt.darkMagenta)
classFormat.setToolTip("this is very important!")
self.Rules.append(
('keyword', classFormat)
)
def highlightBlock(self, text):
for pattern, classFormat in self.Rules:
expression = re.compile(pattern)
for match in re.finditer(expression, text):
index = match.start()
length = match.end() - index
self.setFormat(index, length, classFormat)
语法荧光笔正确设置了文本格式,但工具提示不可用。根本就看不见。
我发现了一些旧的错误报告,该报告描述了类似的行为,但看起来并没有针对上述问题的解决方案: https://bugreports.qt.io/browse/QTBUG-21553
我该如何解决才能使工具提示正常工作?
我当时想我可以在QTextEdit中使用html标记。但是我不喜欢这个想法,因为它会增加文本预处理的复杂性(我正在处理大文件)。还对此进行了一些实验,看起来还很棘手。