python 按钮点击关闭窗口的实现


Posted in Python onMarch 04, 2020

1、简介

1)使用 python 创建主窗口

2)设置标题栏图标,文字

3)设置状态栏图标文字

4)将窗口移动到屏幕中间

2、功能实现

1) QtDesign 实现

就是 先画 ui 然后转python

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication

class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(800, 600)                     # 设置窗口大小
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
    self.verticalLayoutWidget.setGeometry(QtCore.QRect(20, 20, 100, 60)) #设置 按钮位置大小
    self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
    self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
    self.verticalLayout.setContentsMargins(0, 0, 0, 0)
    self.verticalLayout.setObjectName("verticalLayout")
    self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
    self.pushButton.setObjectName("pushButton")
    self.pushButton.clicked.connect(self.onButtonClick) #绑定按键点击事件
    self.verticalLayout.addWidget(self.pushButton)
    MainWindow.setCentralWidget(self.centralwidget)
    self.menubar = QtWidgets.QMenuBar(MainWindow)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
    self.menubar.setObjectName("menubar")
    MainWindow.setMenuBar(self.menubar)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)

    self.retranslateUi(MainWindow)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)

  def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.pushButton.setText(_translate("MainWindow", "关闭窗口"))  # 设置按钮文字

  def onButtonClick(self):
    # sender 是发送信号的对象,此处发送信号的对象是button1按钮
    sender = self.sender()
    print(sender.text() + ' 被按下了')
    qApp = QApplication.instance()
    qApp.quit()    # 关闭窗口

if __name__ == '__main__':
  app = QtWidgets.QApplication(sys.argv)
  MainWindow = QtWidgets.QMainWindow()
  ui = Ui_MainWindow()
  ui.setupUi(MainWindow)
  MainWindow.show()
  sys.exit(app.exec_())

python 按钮点击关闭窗口的实现

可以设置 按钮位置和大小,但是速度有点慢

2)使用 python 直接写出来

速度快一些,但是还没有掌握怎么设置按钮大小和位置··

python 按钮点击关闭窗口的实现

# -*- coding: utf-8 -*- 

'''
  【简介】
	PyQT5中主窗口例子
'''

import sys
from PyQt5.QtWidgets import QMainWindow , QApplication, QDesktopWidget,QPushButton,QHBoxLayout,QWidget
from PyQt5.QtGui import QIcon


class MainWidget(QMainWindow):
	def __init__(self,parent=None):
		super(MainWidget,self).__init__(parent)
    # 设置主窗体标签
		self.setWindowTitle("QMainWindow 例子") #设置主窗口文字
		self.resize(400, 200)  #设置主窗口大小
		self.status = self.statusBar()  #获取主窗口状态栏
		self.status.showMessage("这是状态栏提示",5000) #设置主窗口状态栏文字
		self.center() # 调用将窗口设置中间函数

		self.button1 = QPushButton('关闭主窗口') 	 #实例化一个 按键
		self.button1.setStyleSheet("background-color: red")  # 设置按钮的风格和颜色
		self.button1.clicked.connect(self.onButtonClick) #绑定按键点击事件

		layout = QHBoxLayout()
		layout.addWidget(self.button1)

		main_frame = QWidget()
		main_frame.setLayout(layout)
		self.setCentralWidget(main_frame)

	def onButtonClick(self ):
    #sender 是发送信号的对象,此处发送信号的对象是button1按钮
		sender = self.sender()
		print( sender.text() + ' 被按下了' )
		qApp = QApplication.instance()
		qApp.quit()

	def center(self):
		screen = QDesktopWidget().screenGeometry() # 获取当前屏幕对象
		size = self.geometry() # 获取窗口尺寸数据
		self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) # 根据屏幕尺寸 和 窗口尺寸计算 相应位置

if __name__ == "__main__": 
	app = QApplication(sys.argv)
	app.setWindowIcon(QIcon("./images/cartoon1.ico")) #设置主窗口的图标
	main = MainWidget() #获取主窗口对象
	main.show()
	sys.exit(app.exec_())
Python 相关文章推荐
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
Python ldap实现登录实例代码
Sep 30 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
点球小游戏python脚本
May 22 Python
【python】matplotlib动态显示详解
Apr 11 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
python递归下载文件夹下所有文件
Aug 31 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 #Python
python虚拟环境模块venv使用及示例
Mar 04 #Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 #Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 #Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 #Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 #Python
python实现猜拳游戏
Mar 04 #Python
You might like
域名和cookie问题(域名后缀)
2012/10/10 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
Overload和Override的区别
2012/09/02 面试题
毕业生找工作推荐信
2013/11/21 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
大学活动总结格式
2014/04/29 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL