2009-09-23 28 views
31

Qtを使用して、アプリケーション内に太い赤い線を1つ書きたいと思います。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"ではなく、すべての中かっこ、キーワード、バックスラッシュで文字列全体を表示します。私は間違って何をしていますか?

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

答えて

52

HTML形式:<b><font... etc </b>を試してみてください。

のQt Designerはこのようにそれをしない:<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

+11

QLabelのtextFormat属性をQt :: RichTextに設定する必要がある場合があります。 – dwj

13

Qtは、フォーマットのためのシンプルなHTML subsetを使用しています。

3

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

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

これは1行でも実行できます。

12

あなたはQt StyleSheetsを使用し、QtはそのQWidget由来のクラスのほとんどのCSSスタイルをサポートしていQLabel

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

styleSheetプロパティを設定することができます。これを行うには、テキスト形式をQt::RichTextに設定する必要はありません。

+0

ありがとうございました。それは私のために働いている:) –

関連する問題