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获取远程图片大小和尺寸的方法
Mar 26 Python
python实现图片处理和特征提取详解
Nov 13 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
flask中过滤器的使用详解
Aug 01 Python
Python 一句话生成字母表的方法
Jan 02 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
Python 音频生成器的实现示例
Dec 24 Python
基于python 凸包问题的解决
Apr 16 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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
php+mysql 实现身份验证代码
2010/03/24 PHP
dedecms中使用php语句指南
2014/11/13 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
python脚本定时发送邮件
2020/12/22 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
员工试用期工作总结
2019/06/20 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL