如何从QSyntaxHighlighter中的QTextCharFormat获取工作的setToolTip?

时间:2019-01-04 21:20:31

标签: python qt pyqt

我实现了非常简单的语法突出显示工具,并将其与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标记。但是我不喜欢这个想法,因为它会增加文本预处理的复杂性(我正在处理大文件)。还对此进行了一些实验,看起来还很棘手。

0 个答案:

没有答案