43

Qt を使用して、アプリケーションに単一の太字の赤い線を書きたいと考えています。

私が理解している限りでは、QLabel を作成し、その textFormat をリッチ テキストに設定して、表示するリッチ テキスト文字列を指定します。

QLabel *warning = new QLabel;
warning->setTextFormat(Qt::RichText);
warning->setText("{\\rtf1\\ansi\\ansicpg1252 {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;} {\\colortbl;\\red255\\green0\\blue0;} \\f0 \\cf0 this is bold red text}");

このリッチ テキスト文字列をリッチ テキスト エディタでテストしたところ、問題なく表示されました。

しかし、Qt は、「this is bold red text」ではなく、すべての中かっこ、キーワード、バックスラッシュを含む文字列全体を表示します。私は何を間違っていますか?

ご協力ありがとうございました。

4

4 に答える 4

66

HTML フォーマットを使用してみてください: <b><font... etc </b>.

Qt Designer は次のようにします。<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

于 2009-09-23T08:03:34.607 に答える
39

Qt StyleSheetsを使用して、のstyleSheetプロパティを設定できますQLabel

warning->setStyleSheet("font-weight: bold; color: red");

QWidgetQt は、その派生クラスでほとんどの CSS スタイルをサポートしています。これを機能させるために、テキスト形式を に設定する必要はありませんQt::RichText

于 2016-03-22T15:38:08.613 に答える
13

Qt は書式設定に単純なHTML サブセットを使用します。

于 2009-09-23T08:05:29.313 に答える
2

関数を使用してプログラムで実行することもできsettextます。このようなもの:

QString labelText = "<P><b><i><font color='#ff0000' font_size=4>";
labelText .append("Text what u want to display");
labelText .append("</font></i></b></P></br>");
QLabel label->setText(labelText);

1行で行うこともできます。

于 2012-08-31T08:27:50.700 に答える