すべてのコントロールでqwidgetショーにバックグラウンドスタイルシートを設定します
質問
次のCSSをQWidget StyleSheetに設定しました。
QWidget { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #00b7ea, stop: 1 #009ec3); /* Chrome10+,Safari5.1+ */ }
正常に動作しますが、キャンバスにボタンやその他のコントロールを置くと、要素に同じ背景色が含まれています。
誰かが私がこれを修正するのを手伝ってくれますか。
私はQFrameを使用してみましたが、私はいつもこのようなフレームの周りに境界線を取得します:
解決
aのスタイルシートを設定するとき QWidget
, 、スタイルシートがそれに適用されます QWidget
そして、そのウィジェットの子どもの階層全体。あなたが使用しているので QWidget
セレクターとして、スタイルは任意のものに適用されます QWidget
また QWidget
サブクラス. 。 a QPushButton
のサブクラスです QWidget
, 、したがって、スタイルルールが適用されます。
メインのqwidgetだけをセレクターで選ぶことができる多くの方法があります。この場合、使用するのが最も簡単かもしれません .QWidget
ターゲットのみをターゲットにします QWidget
sではありません QWidget
サブクラス。
あなたが他の人を持っているなら QWidget
s子供の階層では、クラスを識別することでより選択的になることができます objectName
使用しているプロパティ Classname#objectName
.
あなたは読むべきです このセクション 詳細については、QTドキュメントの。
所属していません StackOverflow