Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
89 views
in Technique[技术] by (71.8m points)

python - Qt Dynamic Properties - Works for widget if not parented only?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The standalone widget works because Qt uses the basic stylesheet properties (background and border) only for top level windows, assuming that the top level window is of the same class as that specified in the stylesheet.

When a QWidget has a parent, it does not paint anything on its own.
As the documentation explains:

If you subclass from QWidget, you need to provide a paintEvent for your custom QWidget

So, in PyQt/PySide terms:

class Example(QtWidgets.QWidget):
    # ...
    def paintEvent(self, event):
        opt = QtWidgets.QStyleOption()
        opt.initFrom(self)
        qp = QtGui.QPainter(self)
        self.style().drawPrimitive(
            QtWidgets.QStyle.PE_Widget, opt, qp, self)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...