除非调整窗口大小,否则PyQt5默认样式不会更新视觉效果(MacOS)

时间:2019-10-24 09:03:33

标签: python pyqt pyqt5

在更新任何小部件时,PyQt5的默认样式(在Mac上)似乎是错误的。

例如,一个非常简单的窗口:

import PyQt5.QtWidgets as qtw

class MainWindow(qtw.QWidget):
    def __init__(self):
        super().__init__()
        self.setLayout(qtw.QVBoxLayout())
        label1 = qtw.QLabel('Label')
        button1 = qtw.QPushButton('Button', clicked = lambda: label1.setText('Button'))

        self.layout().addWidget(label1)
        self.layout().addWidget(button1)

        self.show()

app = qtw.QApplication([])
mw = MainWindow()
app.exec_()

在此示例中,当我单击按钮时,label的文本有时仅被部分更新(因此上半部分已更改,但按钮的一半仍显示'label'),并且有时文本根本未更新。但是,一旦我调整窗口大小,视觉效果就会正确显示。

此外,当我添加以下行时:

app.setStyle(qtw.QStyleFactory.create('Fusion'))

创建mw对象后,要更改默认样式,不会出现此问题。实际上,当我将其更改为任何其他样式时,事情都会更新得很好。

这是一个错误还是我做错了什么?解决方法也将不胜感激!

0 个答案:

没有答案