Comme le dit le titre. Résolu. La solution se trouve au bas de l'article.
La couleur d'arrière-plan du widget créé à partir de la sous-classe QWidget n'a pas pu être définie. Cependant, quand j'ai essayé la même chose avec la source d'héritage QWidget (), cela a fonctionné pour une raison quelconque.
Qu'est-ce que c'est!
Je l'ai recherché, je vais donc le résumer.
# 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()

Comme ça, la couleur d'arrière-plan ne fonctionne que sur l'arrière-plan du bouton.
La Référence des feuilles de style Qt dit: (Super traduction)
QWidget
Seuls l'arrière-plan, le clip d'arrière-plan et l'origine de l'arrière-plan sont pris en charge.
** Lors du sous-classement depuis QWidget, vous devez fournir paintEvent comme ci-dessous. ** **
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)
 Donc, si vous mettez le code ci-dessus dans une sous-classe, il sera résolu.
 Tu l'as fait!
 
        Recommended Posts