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中的__future__模块
Apr 27 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python编写一个优美的下载器
Apr 15 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
Python实现Restful API的例子
Aug 31 Python
如何利用Python识别图片中的文字
May 31 Python
python实现最短路径的实例方法
Jul 19 Python
Python wordcloud库安装方法总结
Dec 31 Python
详解Python魔法方法之描述符类
May 26 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中for循环语句的几种变型
2007/03/16 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
百度地图api如何使用
2015/08/03 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
python 循环while和for in简单实例
2016/08/16 Python
python和ruby,我选谁?
2017/09/13 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python @property原理解析和用法实例
2020/02/11 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
django 外键创建注意事项说明
2020/05/20 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
四年级下册教学反思
2014/02/01 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技