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中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
python实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
python替换字符串中的子串图文步骤
Jun 19 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
Wordpress php 分页代码
2009/10/21 PHP
php建立Ftp连接的方法
2015/03/07 PHP
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
python实现按长宽比缩放图片
2018/06/07 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python中zip函数如何使用
2020/06/04 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
西尔斯百货官网:Sears
2016/09/06 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
什么是封装
2013/03/26 面试题
办公室主任职责范文
2013/11/08 职场文书
销售找工作求职信
2013/12/20 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
个人批评与自我批评
2014/10/15 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers