Задний фон окна наследуется всеми виджетами?
Подскажите пожалуйста как поменять задний фон в PyQt5 так, чтобы остальные элементы не менялись?
main.py
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from design import Ui_MainWindow as Design
class Test(QtWidgets.QMainWindow, Design):
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
testapp = Test()
testapp.show()
sys.exit(app.exec_())
design
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setStyleSheet("background-image: url(derevo.jpg);")
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(450, 20, 331, 51))
font = QtGui.QFont()
font.setPointSize(40)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setStyleSheet("color: rgb(255, 255, 255);")
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(600, 80, 75, 23))
self.pushButton.setStyleSheet("background-color: rgb(170, 255, 0);\n"
"color: rgb(255, 255, 255);"
)
self.pushButton.setObjectName("pushButton")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(460, 80, 104, 71))
self.textEdit.setStyleSheet("background-color: rgb(0, 0, 0);\n"
"color: rgb(255, 255, 255);")
self.textEdit.setObjectName("textEdit")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "БАЛАНС"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))

Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Замените
self.centralwidget.setStyleSheet("background-image: url(derevo.jpg);")
на
# vvvvvvvvvvvvvv
self.centralwidget.setStyleSheet("#centralwidget {background-image: url(derevo.jpg);}")
main.py
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
#from design import Ui_MainWindow as Design
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setStyleSheet(
"#centralwidget {background-image: url(tile.png);}"
)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(450, 20, 331, 51))
font = QtGui.QFont()
font.setPointSize(40)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setStyleSheet("color: rgb(255, 255, 255);")
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(600, 80, 75, 23))
self.pushButton.setStyleSheet("background-color: rgb(170, 255, 0);\n"
"color: rgb(255, 255, 255);"
)
self.pushButton.setObjectName("pushButton")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(460, 80, 104, 71))
self.textEdit.setStyleSheet("background-color: rgb(0, 0, 0);\n"
"color: rgb(255, 255, 255);")
self.textEdit.setObjectName("textEdit")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "БАЛАНС"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
class Test(QtWidgets.QMainWindow, Ui_MainWindow): # Design
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
testapp = Test()
testapp.show()
sys.exit(app.exec_())
