1


0

QPushButtonをCSSでスタイリングする?

私はアイコンと*定数*の背景色を持った `QPushButton`を作成しようとしています。 ユーザーがアイコンをクリックしたときに、他の明らかな効果なしにアイコンをスワップアウトできるようにします(これはロールアップ/ロールダウン機能のためです)。 このようなエントリをスタイルシートに追加しました。

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

ボタンのクラスをそれに合わせるように設定してください。そうすると、ボタンをクリックしたときに背景色が薄い青に変わるので、それは望ましくありません。 何が足りないの?

編集:私はこれを行うために私はQt 4.5とPyQt 4.6を使用していることに言及する必要があると思います…​

4 Answer


1


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

あるいは、 QPalette`の役割、特に QPalette

Light`と `QPalette :: Midlight`を見ることもできます。これらは押されたときにボタンの色を調整するために使用されるかもしれません。


1


回答

QObject

setObjectNameでボタンにIDを与えてから#idSelectorでスタイルを適用してみますか?

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

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

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

#ToggleButton:押された{背景色:#8af; }

参考文献


0


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

それ以外の場合は、https://stackoverflow.com/questions/1531062/how-to-change-a-qpushbutton-icon-it-has-focus [この質問]に記載されているように、スタイルを設定できる具体的な状態があります。 押された状態に同じ背景色を設定してみてください。

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

誤解して申し訳ありません。 お役に立てば幸いです。


0


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