Как получить рабочий setToolTip из QTextCharFormat внутри QSyntaxHighlighter? - PullRequest
0 голосов
/ 05 января 2019

Я реализовал очень простую подсветку синтаксиса и использую ее с 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

Как мне обойти это, чтобы всплывающая подсказка работала?

Я думал, что могу использовать html-теги внутри QTextEdit. Но мне не нравится эта идея, так как она усложнит предварительную обработку текста (я работаю с большими файлами). Также провел некоторые эксперименты с этим и, похоже, это тоже может быть сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...