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 02 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Python线程之定位与销毁的实现
Feb 17 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Python面向对象之Web静态服务器
Sep 03 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 Python
Python基础之数据类型知识汇总
May 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
input file获得文件根目录简单实现
2013/04/26 PHP
PHP检测用户语言的方法
2015/06/15 PHP
Javascript !!的作用
2008/12/04 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python configparser模块应用过程解析
2020/08/14 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
应届毕业生如何写求职信
2014/02/16 职场文书
实用的简历自我评价
2014/03/06 职场文书
技术股份合作协议书
2014/10/05 职场文书
高三英语复习计划
2015/01/19 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang