30

テキストを表示するQTextEditボックスがあり、同じボックス内のさまざまなテキスト行にテキストの色を設定できるようにしたいと考えていQTextEditます。(つまり、ライン 1 は赤、ライン 2 は黒など)

QTextEditこれはボックスで可能ですか?そうでない場合、この動作を取得する最も簡単な方法は何ですか?

ありがとう。

4

6 に答える 6

37

簡単な追加: プログラムでテキスト ボックスに入力する場合、自分で html を生成する代わりに、textEdit->setTextColor(QColor&). QColor オブジェクトを自分で作成するか、Qt 名前空間 (Qt::black、Qt::red など) で定義済みの色のいずれかを使用できます。別の色で再度呼び出されるまで、追加したテキストに指定された色が適用されます。

于 2010-05-18T15:05:12.383 に答える
35

私のために働いた唯一のものはhtmlでした

コード スニペットは次のとおりです。

QString line = "contains some text from somewhere ..."
    :
    :
QTextCursor cursor = ui->messages->textCursor();
QString alertHtml = "<font color=\"DeepPink\">";
QString notifyHtml = "<font color=\"Lime\">";
QString infoHtml = "<font color=\"Aqua\">";
QString endHtml = "</font><br>";

switch(level)
{
    case msg_alert: line = alertHtml % line; break;
    case msg_notify: line = notifyHtml % line; break;
    case msg_info: line = infoHtml % line; break;
    default: line = infoHtml % line; break;
}

line = line % endHtml;
ui->messages->insertHtml(line);
cursor.movePosition(QTextCursor::End);
ui->messages->setTextCursor(cursor);
于 2011-08-03T22:52:31.113 に答える
25

HTML 形式のテキストを使用します。たとえば、次のようになります。

textEdit->setHtml(text);

ここで、textは HTML 形式のテキストで、色付きの線などが含まれています。

于 2010-05-18T14:04:01.853 に答える
12

ドキュメントへのリンク

いくつかの引用:

QTextEdit は、HTML スタイルのタグを使用したリッチ テキストの書式設定をサポートする高度な WYSIWYG ビューアー/エディターです。大きなドキュメントを処理し、ユーザー入力に迅速に応答するように最適化されています。

.

テキスト編集では、プレーン テキストと HTML ファイル (HTML 3.2 および 4 のサブセット) の両方を読み込むことができます。

.

QTextEdit は、表や画像を含む大きな HTML サブセットを表示できます。

これは、ほとんどのタグが非推奨であることを意味し、現在の CSS が含まれていないため、次のようになりました。

// save    
int fw = ui->textEdit->fontWeight();
QColor tc = ui->textEdit->textColor();
// append
ui->textEdit->setFontWeight( QFont::DemiBold );
ui->textEdit->setTextColor( QColor( "red" ) );
ui->textEdit->append( entry );
// restore
ui->textEdit->setFontWeight( fw );
ui->textEdit->setTextColor( tc );
于 2012-11-08T10:45:23.597 に答える