PyQt5 之关闭窗口
关闭一个窗口最直观的方式就是点击标题栏的那个叉,也可以使用程序关闭一个窗口。涉及到single
、slots
知识。
QPushButton 组件类:
QPushButton(string text, QWidget parent = None)
text 参数是想要显示的按钮名称,parent 参数是放在按钮上的组件,这里这个参数是 QWidget。应用中的组件都是一层一层(继承而来的?)的,在这个层里,大部分的组件都有自己的父级,没有父级的组件,是顶级的窗口。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
# 程序需要`QtCore`对象
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个继承自 QPushButton 的按钮。第一个参数是按钮的文本,第二个参数是按钮的父级组件,这里,父级组件就是我们创建的继承自 Qwidget 的 Example 类
qbtn = QPushButton('Quit', self)
# 事件传递系统在 PyQt5 内建的 single 和 slot 机制里面。点击按钮之后,信号会被捕捉并给出既定的反应。QCoreApplication 包含了事件的主循环,它能添加和删除所有的事件,instance() 创建了一个它的实例。QCoreApplication 是在 QApplication 里创建的。点击事件和能终止进程并退出应用的 quit 函数绑定在了一起。在发送者和接受者之间建立了通讯,发送者就是按钮,接受者就是应用对象
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_())
本作品采用《CC 协议》,转载必须注明作者和本文链接