border-image
a のプロパティの設定に問題がありますQToolButton
(後で a でもQPushButton
問題が発生すると思います)。QToolButton
カスタム ボタン (およびQPushButton
それぞれから継承) には、非アクティブ、実行中、エラーの 3 つの状態が必要です。
非活性:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: none;'
ランニング:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(89, 205, 139);'
エラー:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(215, 56, 56);'
ここself.cornerRadius
で、ボタンの丸みをピクセル単位で決定するために使用される数値でありself.icon
、どこかから取得したアイコンです。
ボタンのコンストラクターで行うことは (他の単純な初期化の中でも)、
self.setStyleSheet(style)
ボタンの信号は、システムの新しい状態に関してclicked()
( を使用するスタイルと共に) 状態が変更される同じクラスのスロットに接続されます。self.setStyleSheet(...)
なんらかの理由で、ツールチップが「属する」ボタンのスタイルの変更を受け取ります。
Qt のドキュメントを再確認しましたが、この動作を説明する理由がわかりません。ツールチップのスタイルをまったく変更したくありません。これを修正する方法はありますか?