2017-12-19 17 views
1

ウィジェット:のQt - 子の後ろに背景画像私はとQtのインターフェイスを持つ

  • QWidgetの
  • QVBoxLayout
  • QMainLayout
  • のQPushButton

私のインターフェースはこのようなものです:

BACKGROUND_IMAGE_URL = "D:/image.png" 
w = QWidget() 
w.setStyleSheet("background-image:" + "url(" + BACKGROUND_IMAGE_URL + ");" + "border:0px") 
w.repaint() 
w.show() 

button = QPushButton("btn1") 
button.setStyleSheet("background-color: rgb(255, 255, 255); border:0px") 

verticalLayout = QVBoxLayout() 
verticalLayout.addWidget(button) 
mainLayout = QGridLayout() 
mainLayout.addLayout(verticalLayout, 0, 0, 1, 1) 
w.setLayout(self.mainLayout) 

つまり、ボタン付きのウィジェットです。ウィジェットの背景はイメージです。ボタンの背景は白くする必要がありますが、ウィジェットの背景イメージのために、ボタンのスタイルシートはまったく表示されません。

ボタンの背景をウィジェットの背景画像の上に表示したいと思います。どのようにこれを行うにはどのような考え?

+0

BACKGROUND_IMAGE_URLは何ですか? – eyllanesc

+0

'w.setLayout'の後に' w.show() 'を実行するとどうなりますか? –

+0

最新の変更を参照してください。ちょうどファイルのURL – nathanesau

答えて

2

ボタンの色が変更されないように、背景画像がすべてのウィジェットに適用されるため、この問題が発生します。 1つの解決策は、ウィジェットにのみ背景画像を適用することです。したがって、. selectorを使用します:

w.setStyleSheet(".QWidget{background-image:" + "url(" + BACKGROUND_IMAGE_URL + ");" + "border:0px}") 
関連する問題