Wie der Titel schon sagt. Gelöst. Die Lösung befindet sich am Ende des Artikels.
Die Hintergrundfarbe des aus der QWidget-Unterklasse erstellten Widgets konnte nicht festgelegt werden. Als ich jedoch dasselbe mit der Vererbungsquelle QWidget () versuchte, funktionierte es aus irgendeinem Grund.
Was ist das!
Ich habe es nachgeschlagen, also werde ich es zusammenfassen.
# coding: utf-8
from PySide2 import QtWidgets, QtGui, QtCore
class Widget(QtWidgets.QWidget):
def __init__(self):
super(Widget, self).__init__()
self.setStyleSheet("background-color:red")
layout = QtWidgets.QVBoxLayout()
button_widget = QtWidgets.QPushButton()
button_widget.setText("Inherited widget")
layout.addWidget(button_widget)
self.setLayout(layout)
def generate_widget():
parent_widget = QtWidgets.QWidget()
parent_widget.setStyleSheet("background-color:red;")
layout = QtWidgets.QVBoxLayout()
button_widget = QtWidgets.QPushButton()
button_widget.setText("QWidget")
layout.addWidget(button_widget)
parent_widget.setLayout(layout)
return parent_widget
class Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
hbox = QtWidgets.QHBoxLayout()
widget = Widget()
widget2 = generate_widget()
hbox.addWidget(widget)
hbox.addWidget(widget2)
self.setLayout(hbox)
def main():
app = QtWidgets.QApplication()
window = Window()
window.show()
exit(app.exec_())
if __name__ == "__main__":
main()
Auf diese Weise funktioniert die Hintergrundfarbe nur auf dem Hintergrund der Schaltfläche.
In der Qt Style Sheets Reference heißt es: (Super Übersetzung)
QWidget
Es werden nur Hintergrund, Hintergrundclip und Hintergrundursprung unterstützt.
** Wenn Sie eine Unterklasse von QWidget erstellen, müssen Sie paintEvent wie folgt angeben. ** **.
def paintEvent(self, event): opt = QtWidgets.QStyleOption() opt.init(self) painter = QtGui.QPainter(self) style = self.style() style.drawPrimitive(QtWidgets.QStyle.PE_Widget, opt, painter, self)
Wenn Sie also den obigen Code in eine Unterklasse einfügen, wird er gelöst.
Du hast es geschafft!
![qWidget_bgcolor_test_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294868/05de106f-8322-b4d3-c8aa-c4794ce7a75c.png)