2016-03-24 23 views
0

Python/Qt 4.8のGUIにQLabelがあります。これにはテーブルが含まれています。この表の要素をさまざまな色でスタイルしたいと思います。私は<font>タグを使うことができることを理解していますが、クラスとCSSを使うのはやや洗練されたようです。私はそれが次のようになりたい:Qt QLABELのスタイルをスタイルシートとHTMLクラスで設定する

what I want it to look like

私のHTMLは次のようになります。

<table width=100%> 
     <tr class="spec"><td>Wavelength:</td><td>{0:.2f} µm</td></tr> 
     <tr class="spec"><td>Bandwidth:</td><td>{1:.2f} µm</td></tr> 
     <tr class="oldPM"><td>Power:</td><td>{2:.1f} mW</td></tr> 
     <tr class="newPM"><td>{3:.0f} sec stability:</td><td>{4:.1%} rms</td></tr> 
     <tr class="newPM"><td></td><td>{5:.1%} p2p</tr> 
</table> 

そして、このように私のCSS:

#oldPM {color: #333333} 
#spec {color: blue} 
#newPM {color: #333333} 

しかし、Qtはしていないようですクラスセレクタを認識します。これはQtスタイリングの基本的な制限ですか、何か間違っていますか?セレクタとしてQLabelを使用してQLabel全体のスタイルを変更することができますが、異なる部分のスタイルを変更したいと思っています。

答えて

1

QWidget::setStyleSheetは、Qtスタイルシート(QSS)をウィジェットに適用するために使用されます。 CSSを使用してウィジェットのリッチテキストコンテンツのスタイリングをサポートしていません。 Qtはそれをサポートしているとして、あなたは<style>タグ内QLabel内容にあなたのCSSを追加することができます

http://doc.qt.io/qt-4.8/richtext-html-subset.html

#specセレクタがid="spec"で要素に適用されることに注意してください。 class="spec"クラスを持つ要素を選択するには、この構文を使用する必要がありますするには:.spec

をだからあなたのQLabelの全文は次のようになります。

<style> 
    .oldPM {color: #333333} 
    .spec {color: blue} 
    .newPM {color: #333333} 
</style> 
<table width=100%> 
    <tr class="spec"><td>Wavelength:</td><td>{0:.2f} µm</td></tr> 
    <tr class="spec"><td>Bandwidth:</td><td>{1:.2f} µm</td></tr> 
    <tr class="oldPM"><td>Power:</td><td>{2:.1f} mW</td></tr> 
    <tr class="newPM"><td>{3:.0f} sec stability:</td><td>{4:.1%} rms</td></tr> 
    <tr class="newPM"><td></td><td>{5:.1%} p2p</tr> 
</table> 
+0

なるほど!そうですか。どうもありがとう。私はそれが '.spec'でなければならないことを知っていた - 私は実験していた、間違ったバージョンを間違って貼り付けた。 – benshepherd

関連する問題