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文件操作整理汇总
Oct 21 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
解读! Python在人工智能中的作用
Nov 14 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
python实现倒计时小工具
Jul 29 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
python获取淘宝服务器时间的代码示例
Apr 22 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
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
javascript打印输出json实例
2013/11/11 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python中functools模块的常用函数解析
2016/06/30 Python
安装Python的教程-Windows
2017/07/22 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python datetime 如何处理时区信息
2020/09/02 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
驾驶员岗位职责
2014/01/29 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
大学军训感言1500字
2014/03/09 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
党课主持词大全
2015/06/30 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android