PyQt5每天必学之关闭窗口


Posted in Python onApril 19, 2018

最简单的关闭一个窗口的方法是点击标题栏上的 x 标志。但是,在下面的例子中,我们将展示如何通过编程来控制关闭窗口。我们将使用PyQt5的信号/槽。

以下是我们在例子中使用到的 QPushButton 控件的构造方法。

QPushButton(string text, QWidget parent = None)

text 参数是在按钮上显示的文本。parent 要将按钮控件放在哪里。在下面的例子中我们要将按钮控件放到 QWidget里。一个应用程序的窗口控件可以形成一个分层结构,在这个层次,大多数控件有他们的父控件,没有父控件的控件即是顶层窗口。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个程序创建一个退出按钮。当我们按下按钮,应用程序将终止。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月29日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import QCoreApplication

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  btn = QPushButton('退出', self)
  btn.clicked.connect(QCoreApplication.instance().quit)
  btn.resize(btn.sizeHint())
  btn.move(50, 50)

  self.setGeometry(300, 300, 300, 220)
  self.setWindowTitle('退出按钮')  
  self.show()

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

在这个例子中,我们创建了一个退出按钮。当点击按钮,应用程序终止。

from PyQt5.QtCore import QCoreApplication

我们需要使用 QtCore 模块中的 QCoreApplication 对象

btn = QPushButton('退出', self)

我们创建了一个按钮,按钮是 QPushButton 类的一个实例。构造函数的第一个参数是按钮的标签。第二个参数是父窗口控件。父窗口控件是Example 控件,这是一个继承自 QWidget 的类。

btn.clicked.connect(QCoreApplication.instance().quit)

该事件处理系统建立在 PyQt5 的信号/槽的机制上。如果我们点击该按钮,按钮将会发出信号,单击信号连接到 quit() 方法使应用程序终止。

槽可以是 Qt 的槽也可以是 Python 的任何调用。 QCoreApplication 包含主事件循环;它处理和调度所有事件。instance()方法为我们提供了其当前实例。注意,区分 QCoreApplication 与 QApplication。

发送器和接收器:在通信的两个对象之间进行。发送器是按钮,接收器是应用对象。

概念有些混乱,这里整理一下:

按钮(btn)是发送器。点击(clicked)按钮后,发出点击信号。点击信号连接(connect)到槽(可以是 Qt 的槽也可以是 Python 的任何调用)。
在我们的例子中是Qt的槽,QCoreApplication处理和调度所有Qt事件,调度出instance(这个实例(接收器))的 quit 事件。

大概就这个意思了,慢慢理解吧!

程序执行后,点击退出按钮,将关闭程序。

PyQt5每天必学之关闭窗口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现文件快照加密保护的方法
Jun 30 Python
python使用psutil模块获取系统状态
Aug 27 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
对python读取CT医学图像的实例详解
Jan 24 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
python3下载抖音视频的完整代码
Jun 05 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
通过实例学习Python Excel操作
Jan 06 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
python实现在IDLE中输入多行的方法
Apr 19 #Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 #Python
PyQt5每天必学之工具提示功能
Apr 19 #Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 #Python
python 读入多行数据的实例
Apr 19 #Python
Python 绘图库 Matplotlib 入门教程
Apr 19 #Python
python 列表删除所有指定元素的方法
Apr 19 #Python
You might like
Laravel数据库读写分离配置的方法
2019/10/13 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
简单介绍Python中的len()函数的使用
2015/04/07 Python
初步解析Python下的多进程编程
2015/04/28 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
numpy中索引和切片详解
2017/12/15 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python字典遍历操作实例小结
2019/03/05 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
初中三年毕业生的自我评价分享
2014/02/14 职场文书
小学生家长寄语
2014/04/02 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
教师四风问题整改措施
2014/09/25 职场文书
汽车转让协议书范本
2014/12/07 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
2014年教研员工作总结
2014/12/23 职场文书
普通员工辞职信范文
2015/05/12 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android