2012-02-24 15 views
0

私は教育用ソフトウェアを構築していますが、コードのどの部分が実行されているかに応じて、特定の行のコードを強調したい出力に疑似コードがあります。ハイライト出力の特定の行

First round() 
..... 

- >それは 出力を移動した後、この行と次のハイライト:第一ラウンドはちょうど

私が強調し、いくつかのbashをしていただ遠くを開始したが、それは二回ラインをプリントアウトするために私を必要と。一度黒と二番目に異なる色で。特定の行をハイライトする方法に関する提案はありますか?どんな助けもありがとうございます。

EDIT:私の出力がテキストボックスに表示されますので、私は私のGUIツールキットとしてPyQtはを使用してい

+0

を使用しない限り、この質問は、シェルが大丈夫であることを暗示以外にも、あなたの許可技術が何であるかについてのコンテキストを与えません。あなたの質問をより明確に編集してください。シェルで作業しなければならないことがあれば、cursesディスプレイを使うか、ハイライトを変更するたびに画面をクリアすることができます(恐らくちらつきが発生するでしょう)。 – ninjagecko

答えて

1

あなたが強調表示したい行(*)やハイライトを消しに対応QTextBlockオブジェクトを取得する必要がありますし、その行の形式を変更するQTextCursorを使用します。

def setLineFormat(self, lineNumber, format): 
    cursor = QTextCursor(self.textEdit.document().findBlockByNumber(lineNumber)) 
    cursor.setBlockFormat(format)  

# with 
format = QTextBlockFormat() 
format.setBackground(Qt.yellow) 
# or 
format.clearBackground() 

あなたがQSyntaxHighlighterを使用している場合、あなたはまた、QSyntaxHighlighter.highlightBlock()方法aにその状態を処理し、QTextBlock.setUserState()またはsetUserDataQTextBlockにラインの状態を保存することができ構文の強調表示の一部になり、前の行と現在の行が強制的に再塗りつぶされます(QSyntaxHighlighter.rehighlightBlock())。

*:ライン==ブロックカスタム文書レイアウト

関連する問題