2016-05-01 15 views
1

単語と文字がいくつかの色で表示されたQTextEditウィンドウがあります。私はウィンドウの内容を処理するときに、テキストの各部分の色を取得できるようにしたい。これまでのところ、内容全体をhtmlファイルとして保存し、それを解析して色情報を含むテキストのみを抽出していました。これは非常に面倒で困難です。カーソル位置のテキストの色を取得できる場合は、QTextCursorを使用してテキストを処理する方が好きです。私は適切な機能を探しましたが、見つけました。QTextEditからテキストカーソルの文字の色(または背景色)を取得できますか?

QTextCursor位置で色(または形式)を取得する機能はありますか?

また、フォーマット情報で同じ色(または形式)の単語や文字の連続したセクションを取得する方法がありますか?

答えて

1

私は、私が望むことをする方法を見つけました。関連するコードは次のとおりです。

QTextCursor tc = qte->textCursor(); 
tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor); 
while(tc.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor)) 
{ 
    QTextCharFormat tcf = tc.charFormat(); 
    int bg = tcf.background().color().rgb(); 
    int fg = tcf.foreground().color().rgb(); 
    printf("bg=%x fg=%x\n", bg, fg); 
} 

すべてのコメントや改善を大歓迎します。

の上方修正さ]:私はもともと

QColor bg = tcf.background().color().rgb(); 
QColor fg = tcf.foreground().color().rgb(); 

を持っていたが、最後に.rgb()と、それはintQColorに変換します。

関連する問題