2016-10-27 6 views
0

緑色のボタンを作りたいと思います。それはスタイリングの前にしてスタイルボタンの背景が丸くなっています

ここ
self.detectButton.setStyleSheet("background: #00ff00") 

enter image description here

以降:

enter image description here

は、あなたが見ることができるように、色が変化しますが、私はこれをしませんでした丸い角がなくなった。

コーナーが失われないように色をスタイルする適切な方法は何ですか?

二次的には、一般的な「OK」ボタンの色をテーマにする方法はありますか?これは他のプラットフォームでは同じには見えません。

答えて

1

すべてのプラットフォームで完全な一貫性のある結果を得るには、スタイルシートを使用しないでください。この理由は、this answerで説明されています。

あなただけのウィジェットのpaletteを使用し、背景色を設定する必要がある場合:

palette = self.detectButton.palette() 
palette.setColor(QtGui.QPalette.Button, QtGui.QColor('#00ff00')) 
self.detectButton.setPalette(palette) 

すべてのプラットフォームでも同様に動作し、色を生成するための体系的な方法がありますとは考えにくいです。おそらくあなたができることは、palette color rolesでアクセス可能なシステムカラーの1つを調整することです。

EDIT

私がパレット法は信頼性の高いクロスプラットフォームソリューションであると仮定することは間違っていたようです。

警告::彼らはネイティブのテーマエンジンを利用する場合、いくつかのスタイルは、 例えば、すべての描画のためのパレットを使用していないQPaletteのためのQtのドキュメントには、次のものがあります。これは、Windows XP、Windows Vista、およびOS Xスタイルの両方について、 の場合です。

だから、背景色を変えるだけの簡単な操作を行うために、完全に一貫したクロスプラットフォームの方法さえないようです。

+0

私はこれを試しましたが、明らかな効果はありませんでした。私は何が間違っていたか把握する方法がわかりません。 – Claudiu

+0

@Claudiu。その役割に 'QtGui.QPalette.Window'を使ってみてください。 – ekhumoro

+0

palette.setColor(QtGui.QPalette.Button、QtGui.QColor( '#00ff00')) 'の代わりに' palette.setColor(QtGui.QPalette.Window、QtGui.QColor( '#00ff00'))しかし、まだ行きません:/ – Claudiu

0

私はPythonに慣れていませんが、手作業で設定したときに他のすべてのスタイルを削除したと仮定しています。

次のようなものがうまくいくのだろうか?

self.detectButton.setStyleSheet("background: #00ff00; border:1px solid #ccc; border-radius: 3px;") 

ただし、複数のスタイルで異なる構文を使用している可能性があります。

関連する問題