我一直在做很多研究,並且一直無法想出在PyQt4中描述這一特定代碼行的任何內容。像許多學習PyQt的人一樣,我一直在遵循zetcode的PyQt4 tutorial。我還是有點Python中的初學者,但我盡我所能去了解每一行代碼,我經過這裏,並且有一點我難住了:PyQt4:QtCore.QCoreApplication.instance()。之間的區別quit和self.close?
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)實例的指針」,但這並不能真正幫助我理解(也許我只是沒有經歷過夠了,我不知道)。
此外,有上面的代碼線和這之間的功能性差異:即self.close提到作爲唯一的反應
qbtn.clicked.connect(self.close)
我發現this thread哪種觸摸的上這整個主題,但可能的選擇是沒有解釋的低估。任何幫助或指導將不勝感激,謝謝!
有趣的問題! –