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开发常用的一些开源Package分享
Feb 14 Python
python中执行shell的两种方法总结
Jan 10 Python
Python中模块string.py详解
Mar 12 Python
python实现关键词提取的示例讲解
Apr 28 Python
python实现电脑自动关机
Jun 20 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
wxPython实现整点报时
Nov 18 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
Python3如何判断三角形的类型
Apr 12 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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下判断网址是否有效的代码
2011/10/08 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
PHP函数积累总结
2019/03/19 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
python求平均数、方差、中位数的例子
2019/08/22 Python
python实现KNN分类算法
2019/10/16 Python
python实现大量图片重命名
2020/03/23 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python openssl模块安装及用法
2020/12/06 Python
html5 标签
2009/07/16 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
关爱女孩行动实施方案
2014/03/13 职场文书
集体生日活动方案
2014/08/18 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python