一個顯而易見的關閉窗口的方式是但集標題蘭有上角的X標記。接下來的示例展示如何用代碼來關閉程序,並簡要介紹Qt的信號和槽機制。
下面是QPushButton的構造函數,我們將會在下面的示例中使用它。
QPushButton(String text, QWiget parent = None)
text表示將顯示在按鈕上的文本。parent是其父對象,用於指定按鈕顯示在哪個部件中。在我們的示例中,parent是一個QWidget對象。
#!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import QtGui, QtCore class QuitButton(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('moonlight poet quit button') quit = QtGui.QPushButton('Close', self) quit.setGeometry(10, 10, 60, 35) self.connect(quit, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()')) app = QtGui.QApplication(sys.argv) qb = QuitButton() qb.show() sys.exit(app.exec_())
效果:

quit = QtGui.QPushButton('Close', self)
quit.setGeometry(10, 10, 60, 35)
以上兩句用來創建一個按鈕並將其放在QWidget部件上,就像我們將QWidget部件放在屏幕上一樣。
self.connect(quit, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()'))
PyQt4的事件處理系統建立在信號-槽機制之上。如果我們單擊quit按鈕,那么信號clicked()就會被觸發,槽函數可以是PyQt自帶的槽函數,也可以是任何Python可以調用的函數等。QtCore.QObject.connect()方法可以將信號和槽函數連接起來。在我們的示例中槽函數是PyQt中已定義的quit()函數。通過connect方法就可以建立發送者(quit按鈕)和接受者(應用程序對象)之間的通信。
