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实现SVN的目录周期性备份实例
Jul 17 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
Python存取XML的常见方法实例分析
Mar 21 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
Python装饰器用法实例总结
Feb 07 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
德生9700DX电路分析
2021/03/02 无线电
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
优化javascript的执行速度
2010/01/23 Javascript
range 标准化之获取
2011/08/28 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
javascript self对象使用详解
2016/10/18 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python GUI编程完整示例
2019/04/04 Python
python 弧度与角度互转实例
2020/04/15 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
基层党建工作汇报材料
2014/08/15 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js