我一直在做大量研究,但未能提出任何描述PyQt4中特定代码行的内容。像许多其他学习PyQt的人一样,我一直在关注zetcode的PyQt4教程。我仍然是Python的初学者,但是我在努力阅读本文的每一行代码时都感到很困惑:
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
qbtn = QtGui.QPushButton('Quit', self)
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我了解这条线以外的所有内容:
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
有人可以解释这里到底发生了instance().quit
什么吗?我知道很明显它退出了程序,我只是不了解代码实际上在做什么以及为什么。我唯一能够了解到的信息是instance()“返回了指向应用程序的QCoreApplication(或QApplication)实例的指针”,但这并不能真正帮助我理解(也许我只是没有经验足够,我不知道)。
此外,上述代码行与以下代码行之间存在功能差异:
qbtn.clicked.connect(self.close)
我发现此线程与整个主题有关,但是唯一提及self.close作为可能的替代方法的响应被否决了,没有任何解释。任何帮助或指导将不胜感激,谢谢!
qbtn.clicked
是按钮发出的信号。QCoreApplication.instance()
是主要的应用对象。因此,它将按钮信号连接到应用程序的退出插槽。
在第二个示例中,按钮将仅关闭拥有该按钮的窗口。如果应用程序有多个窗口,或者在上一个窗口关闭时没有自动退出,则该应用程序仍将运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句