一个显而易见的关闭窗口的方式是但集标题兰有上角的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按钮)和接受者(应用程序对象)之间的通信。