2011-02-07 6 views
3

2つのボタンがあるウィンドウがあります。Qtスタイルシートの構文:すべてのボタンではなく、特定のボタンをターゲットにする

それぞれを別のスタイルシートで飾りたいと思っています。もちろん、それらはどちらも異なるオブジェクト名を持っていますが、汎用のQPushButtonスタイルシートセレクタだけが動作するようです。

Iが試み:

QPushButton#myBtnObjectName1 { 

/* style definitions */ 

} 
QPushButton#myBtnObjectName2 { 

/* style definitions */ 

} 

.#を交換する、またはだけ#myBtnObjetNameXを有する同一のを試してみました。何も動作しません。ちょうど:

QPushButton { 
/* style definitions */ 
} 

私は間違った構文を使用していますか?または、コード内でQPushButtonから派生し、それぞれに別のクラス名を使用しなければ、これは単純に不可能ですか?

+0

私はQT-Designerの "ObjectNameの" 以外のオブジェクト名のどこかを定義する必要があります? – JasonGenX

+0

スタイルシートをどのように正確に適用するのが重要ですか?構築中の – Shinnok

+0

:QFileファイル(stylesheetURL); file.open(QFile :: ReadOnly); QString styleSheet = QLatin1String(file.readAll()); setStyleSheet(styleSheet);いくつかのウィジェット(どちらか)またはアプリケーション全体(QApplication)の – JasonGenX

答えて

3

ははいああ、Qtのデザイナの "のaccessibleNameは" ただ "のObjectName"

+0

それは問題を解決しますか? –

+0

そこには珍しいものがあります。 Qt Designerを使用して2つのQPushButtonを持つQWidgetを作成し、QWidgetに割り当てられたCSSスタイルシートのセレクタQPushButton#button_nameを使用して各ボタンを名前で選択すると、両方のボタンに異なる背景色が与えられます。それはAccessibleNameのために何も設定する必要なく、正しく(私のために)動作します。 –

+0

私は4.7.1を使用しています。ウィジェットのコンストラクタにスタイルシートを適用します。 – JasonGenX

5

あなたは、このためのQt Designerで "のaccessibleName" を使用することができない、あまりにも設定する必要があります。 そしてQSSスタイルシートで:

より普遍的な:

[accessibleName="alert-error"] { 
    color: red; 
} 

またはより具体的に:

QPushButton[accessibleName="bigred"] { 
    background-color: red; 
} 
関連する問題