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脚本
Feb 10 Python
Python入门篇之编程习惯与特点
Oct 17 Python
python 连接sqlite及简单操作
Jun 30 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
python3 实现一行输入,空格隔开的示例
Nov 14 Python
python遍历小写英文字母的方法
Jan 02 Python
python调用外部程序的实操步骤
Mar 04 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
django框架单表操作之增删改实例分析
Dec 16 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
Python爬取某拍短视频
Jun 11 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新手上路(十三)
2006/10/09 PHP
PHP 数字左侧自动补0
2008/03/31 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
javascript 写类方式之八
2009/07/05 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python入门之基础语法学习笔记
2020/02/08 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
团员学习总结的自我评价范文
2013/10/14 职场文书
小组口号大全
2014/06/09 职场文书
欢迎领导标语
2014/06/27 职场文书
2014年小学工作总结
2014/11/26 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
vue特效之翻牌动画
2022/04/20 Vue.js