Python 除非主窗口未聚焦,否则不会更新QLabel

Python 除非主窗口未聚焦,否则不会更新QLabel,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我正在使用PyQt5和Python 3.7.3以及macOS 10.14.6来尝试“Hello World”。执行下面的pyqt\u helloworld.py,然后单击按钮将标签更新为“Hello World” 但是,当单击按钮时,文本不会更改,直到我手动关注其他应用程序的窗口,标签才会更新。如何在不解除PyQt应用程序焦点的情况下更新QLabel 提前谢谢 pyqt\u helloworld\u ui.py 从PyQt5导入QtCore、QtGui、qtwidget 类Ui_HelloWor

我正在使用PyQt5和Python 3.7.3以及macOS 10.14.6来尝试“Hello World”。执行下面的
pyqt\u helloworld.py
,然后单击按钮将标签更新为“Hello World”

但是,当单击按钮时,文本不会更改,直到我手动关注其他应用程序的窗口,标签才会更新。如何在不解除PyQt应用程序焦点的情况下更新QLabel

提前谢谢

pyqt\u helloworld\u ui.py

从PyQt5导入QtCore、QtGui、qtwidget
类Ui_HelloWorld(对象):
def设置UI(自我,对话框):
setObjectName(“对话框”)
对话框。调整大小(400300)
self.label=qtwidts.QLabel(对话框)
self.label.setGeometry(QtCore.QRect(70,40,201,21))
self.label.setObjectName(“标签”)
self.pushButton=qtwidts.QPushButton(对话框)
自身按钮设置几何(QtCore.QRect(130、90、113、32))
self.butdown.setObjectName(“butdown”)
自重传(对话框)
QtCore.QMetaObject.connectSlotsByName(对话框)
def重新传输(自我,对话框):
_translate=QtCore.QCoreApplication.translate
setWindowTitle(_translate(“Dialog”,“Dialog”))
self.label.setText(_translate(“Dialog”,“foobar”))
self.putton.setText(_translate(“对话框”,“单击”))
pyqt\u helloworld.py

导入系统 从PyQt5.QtCore导入pyqtlot 从PyQt5.QtWidgets导入QApplication 从PyQt5.QtWidgets导入QMainWindow 从pyqt_helloworld_ui导入ui_helloworld 类HelloWorldGui(QMainWindow,Ui\u HelloWorld): def uuu init uuu(self,parent=None): 超级(HelloWorldGui,self)。\uuuu初始化(父级) self.setupUi(self) self.button.clicked.connect(self.setTextHelloWorld) def setTextHelloWorld(自身): self.label.setText(“Hello World”) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': argvs=sys.argv app=QApplication(argvs) hello\u world\u gui=HelloWorldGui() 你好(world)gui.show() sys.exit(app.exec_())
自5.11.0(测试版本5.11.x、5.12.x和5.13)和MacOS上的PySide2 v.5.13(测试版本10.14和10.12.6)以来,PyQt5就出现了该问题。 v.5.10.1工作正常。 Linux和Windows下不存在此问题 添加对repaint方法的调用可以修复此问题

def setTextHelloWorld(self):
    self.label.setText("Hello World")
    self.label.repaint()

即使出现错误,它也能正常工作:将QMainWindow更改为QDialog。您使用的是最新版本的PyQt5吗?你的操作系统是什么?你的Python版本是什么?您是如何安装PyQt5的?谢谢您的评论。-我通过
pip安装PyQt5安装了PyQt5,它的版本是5.13.0(最新)-我使用的是macOS 10.14.6。-在pyqt_helloworld.py中将QMainWindow更改为QDialog不起作用。我认为这是一个bug,在使用Python 3.7.4和PyQt5.13的Linux中,它工作正常,请报告。很抱歉我的回复太晚。我在macOS Sierra中尝试了上述代码,并确认其工作正常,因此这可能是macOS中最近的更新导致的问题。非常感谢你的帮助!