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之从if开始语句的征程
Sep 14 Python
python关闭windows进程的方法
Apr 18 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
python实现实时监控文件的方法
Aug 26 Python
深入理解Django自定义信号(signals)
Oct 15 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
python getopt模块使用实例解析
Dec 18 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
利用Python计算KS的实例详解
Mar 03 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Python datetime 如何处理时区信息
Sep 02 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面向对象public private protected 访问修饰符
2013/06/30 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
angularjs基础教程
2014/12/25 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
python处理二进制数据的方法
2015/06/03 Python
Python 中的 else详解
2016/04/23 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
《藤野先生》教学反思
2014/02/19 职场文书
高中生家长寄语大全
2014/04/03 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
Python办公自动化解决world文件批量转换
2021/09/15 Python