1

QPushButtonアイコンと一定の背景色が付いたものを作成しようとしています。ユーザーがアイコンをクリックしたときに、他の明らかな影響なしにアイコンを交換できるようにします(これはロールアップ/ロールダウン機能用です)。次のようなエントリをスタイルシートに追加しました。

QPushButton.ToggleButton {
    background-color: #8af; 
}

ボタンのクラスを一致するように設定します。これにより、実際に希望の外観が得られます。ただし、ボタンをクリックすると、背景色が明るい青に変わりますが、これは望ましくありません。私は何が欠けていますか?

編集:私はこれを行うためにQt4.5とPyQt4.6を使用していることを言及する必要があると思います...

4

4 に答える 4

1

答え

QObject::setObjectName でボタンに ID を与えてから、#idSelector でスタイルを適用してみてください。

Python では、コードはおそらく次のようになります。

button = QPushButton(self)
button.setObjectName("ToggleButton")

このようなスタイルシート:

#ToggleButton:pressed {
  background-color: #8af;
}

参考文献

于 2009-11-16T19:49:45.657 に答える
1

スタイルシートを使用するのが好きな人がいることは知っていますが、この状況では、カスタム ボタンを作成するのも同じくらい簡単だと思います。を継承するクラスを定義しQAbstractButton、paint() メソッドをオーバーライドします。ペイント メソッドでは、四角形を目的の背景色で塗りつぶし、現在のアイコンを上にペイントします。ボタンの周囲にも境界線が必要な場合は、少し複雑になる可能性がありますが、それほど複雑ではありません。

QPaletteまたは、特にQPalette::Lightとの役割を調べることもできますQPalette::Midlight。これは、ボタンが押されたときに色を調整するために使用される可能性があります。

于 2009-11-11T14:52:19.013 に答える
0

Qt Designerでボタンのスタイルシートを開き、これを試してください。
QPushButton:pressed { image: url(/path/to/your/file/fileName.png); }

于 2009-11-13T07:03:42.900 に答える
0

私はbackground-color: #8af !important;それがうまくいかないと仮定しているので、やることはあまりにも明白だと思います。まだ行っていない場合は、試してみる価値があります。

それ以外の場合は、この質問に記載されているように、スタイルを設定できる特定の状態があります。押された状態に同じ背景色を設定してみてください。

QPushButton.ToggleButton:pressed { background-color: #8af; }

誤解していたらごめんなさい。それが役立つことを願っています。

于 2009-11-11T00:28:47.260 に答える