执行以下代码后
# ===
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello World!')
label.show()
app.exec_()
# ===
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import QApplication, QPushButton
app = QApplication([])
app.setStyle('Fusion')
palette = QPalette()
palette.setColor(QPalette.ButtonText, Qt.red)
app.setPalette(palette)
button = QPushButton('Hello World')
button.show()
app.exec_()
我收到错误:
Process finished with exit code -1073741819 (0xC0000005)
我在Python 3.7
版本2019.1.3和Windows 10中使用PyQt5
,PyCharm
。我已经重新安装了程序包,重新安装了Pycharm,但无济于事。
这可能是Windows特定的错误。或者我通过重新定义应用变量来违反PyQt的工作方式。
我可以通过在单独的python环境中执行两个“程序”来单独运行它们,但不能一个接一个地运行。
如果我不在Pycharm中执行代码,我会发现运行第一部分后,在定义app.setPalette(palette)
后要么被踢出Python。或者在运行第二部分之后,在label = QLabel('Hello World!')
之后。
关于为什么发生这种情况的任何其他信息都将是一件好事:)因为我不明白那部分。 关于“只是不那样做”的解决方案,不会帮助我理解问题。预先感谢
答案 0 :(得分:0)
尝试一下:
from PyQt5.QtWidgets import QApplication, QLabel, QPushButton
from PyQt5.QtCore import Qt, QRect, QSize
from PyQt5.QtGui import QPalette
def closeEvent():
app = QApplication([])
app.setStyle('Fusion')
palette = QPalette()
palette.setColor(QPalette.ButtonText, Qt.red)
app.setPalette(palette)
button = QPushButton('QPushButton: Hello World')
button.show()
app.exec_()
app = QApplication([])
app.aboutToQuit.connect(closeEvent) # +++
label = QLabel('QLabel: Hello World!')
label.show()
app.exec_()