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批量修改文件后缀示例代码分享
Dec 24 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
在Python中使用正则表达式的方法
Aug 13 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Python开发网站目录扫描器的实现
Feb 21 Python
详解python的argpare和click模块小结
Mar 31 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
序列化Python对象的方法
Aug 01 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
python实现会员信息管理系统(List)
Mar 18 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 编写的日历
2006/10/09 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
简单了解django索引的相关知识
2019/07/17 Python
python web框架 django wsgi原理解析
2019/08/20 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
接收函格式
2015/01/30 职场文书
家装业务员岗位职责
2015/04/03 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL