3

highlightBlock(self, qtext)QtGui.QSyntaxHighlighter、ウィジェットの各行をQTextEdit異なるブロック ( qtext) として扱います。これにより、正規表現の複数行フラグが停止します。これは、私の状況では契約を破るものです! setCurrentBlockState()andについて読みましたpreviousBlockState()が、複数行フラグを壊さないためにはあまり役に立ちません。

これを逃した簡単な方法はありますか?そうでない場合、最善のアプローチとして提案するものは次のとおりです。

a) QTextBlock を 1 行からテキスト全体に拡張QTextEditおよび変更します。QDocument

b)QTextLayout、QTextFormatなどを使用して独自のハイライターを最初から実装します。

4

1 に答える 1

0

(拡張可能として宣伝されていない) Qt クラスの拡張に関する問題は、多くのメソッドが仮想でなく、さらに実装のほとんどがプライベートクラス内で行われることです。

これにより、拡張が容易ではなくなります。だから私はプランBに固執します。

于 2013-11-28T22:19:16.250 に答える