#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode PyQt5 tutorial
This program creates a quit
button. When we press the button,
the application terminates.
Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""
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.resize(qbtn.sizeHint())
qbtn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
这里创建了一个点击之后就退出窗口的按钮。
text
from PyQt5.QtCore import QCoreApplication
程序需要 QtCore
对象。
text
qbtn = QPushButton('Quit', self)
创建一个继承自 QPushButton
的按钮。第一个参数是按钮的文本,第二个参数是按钮的父级组件,这个例子中,父级组件就是我们创建的继承自 QWidget
的 Example
类。
text
qbtn.clicked.connect(QCoreApplication.instance().quit)
事件传递系统在 PyQt5 内建的 signals 和 slots 机制里面。点击按钮之后,信号会被捕捉并给出既定的反应。QCoreApplication
包含了事件的主循环,它能添加和删除所有的事件,instance()
创建了一个它的实例。QCoreApplication
是在 QApplication
里创建的。点击事件和能终止进程并退出应用的 quit 函数绑定在了一起。在发送者和接受者之间建立了通讯,发送者就是按钮,接受者就是应用对象。
程序预览: