2017-12-19 11 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

입니까? – eyllanesc

+0

'w.setLayout' 다음에'w.show()'하면 어떻게 될까요? –

+0

최근 변경 사항을 확인하십시오. 그냥 파일 URL을 – nathanesau

답변

2

배경 이미지가 모든 위젯에 적용되어 단추의 색이 수정되지 않기 때문에 문제가 발생합니다. 하나 개의 솔루션은 위젯에 배경 이미지를 적용하는 것입니다, 그래서 우리는 . selector 사용 BACKGROUND_IMAGE_URL 무엇

w.setStyleSheet(".QWidget{background-image:" + "url(" + BACKGROUND_IMAGE_URL + ");" + "border:0px}")