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的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
python版学生管理系统
Jan 10 Python
Python异常处理操作实例详解
May 10 Python
python使用RNN实现文本分类
May 24 Python
Python实现的redis分布式锁功能示例
May 29 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python常用的json标准库
Feb 19 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Django视图扩展类知识点详解
Oct 25 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
Python实现验证码识别
Jun 15 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
详解jQuery选择器
2016/12/21 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JS实现简易计算器
2020/02/14 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
函授本科自我鉴定
2013/11/03 职场文书
后勤主管岗位职责
2014/03/01 职场文书
金融与证券专业求职信
2014/06/22 职场文书
挂职学习心得体会
2014/09/09 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python