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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python3.7.0的安装步骤
Aug 27 Python
python实现微信小程序自动回复
Sep 10 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python实现nao机器人手臂动作控制
Apr 29 Python
python实现微信防撤回神器
Apr 29 Python
python pptx复制指定页的ppt教程
Feb 14 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 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
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php格式文件打开的四种方法
2018/02/24 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
python获取从命令行输入数字的方法
2015/04/29 Python
python负载均衡的简单实现方法
2018/02/04 Python
Python多层装饰器用法实例分析
2018/02/09 Python
python使用selenium实现批量文件下载
2019/03/11 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
服装厂厂长职责
2013/12/16 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
三好学生个人总结
2015/02/15 职场文书
农业项目合作意向书
2015/05/08 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android