【发布时间】:2017-10-06 13:16:22
【问题描述】:
您能否解释一下为什么在这种情况下退出按钮无法正常工作:
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
qbtn = QPushButton('Quit', self)
qbtn.clicked.connect(QCoreApplication.instance().quit)
qbtn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.show()
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
但如果我在函数中包含最后三行,则可以:
def fun():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
fun()
我不明白机制:(
【问题讨论】:
-
“无法正常工作”是什么意思?它对我来说是一样的。
-
当我在第一种情况下单击按钮时,没有任何反应。在第二种情况下,窗口实际上是关闭的
-
你的操作系统是什么?
-
Windows 7。对于这两种情况,我只有一个行为不同吗? :)
-
如果我运行该代码,窗口甚至不会关闭。对于发现此问题的其他人,我快速浏览了一下,可以使用
QCoreApplication.instance().quit而不是self.close。