相关文章推荐
长情的火锅  ·  python读取excel,获得下拉选中所有 ...·  3 周前    · 
勤奋的鸭蛋  ·  python - Set up of ...·  2 周前    · 
大力的长颈鹿  ·  python - Conda env ...·  2 周前    · 
讲道义的闹钟  ·  如何释放Python占用的内存?开发者社区·  16 小时前    · 
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 ...·  16 小时前    · 
骑白马的骆驼  ·  XGP六月下至七月初游戏阵容更新,包含《暗影 ...·  2 年前    · 
豁达的丝瓜  ·  盐通铁路启动逐级提速试验:计划年底开通|盐城 ...·  2 年前    · 
温柔的酱牛肉  ·  《高层访谈》赛力斯汽车销售总经理庞海:SF5 ...·  2 年前    · 
唠叨的碗  ·  46 伙伴(上) - 不败战神 第二季 ...·  2 年前    · 
慷慨大方的花卷  ·  学霸的黑科技系统(网络小说)_百度百科·  2 年前    · 
Code  ›  python 按钮点击关闭窗口的实现开发者社区
python
https://cloud.tencent.com/developer/article/1742202
悲伤的墨镜
1 年前
砸漏

python 按钮点击关闭窗口的实现

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
砸漏
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > python 按钮点击关闭窗口的实现

python 按钮点击关闭窗口的实现

作者头像
砸漏
发布 于 2020-11-05 10:41:33
4.6K 0
发布 于 2020-11-05 10:41:33
举报
文章被收录于专栏: 恩蓝脚本 恩蓝脚本

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_())

可以设置 按钮位置和大小,但是速度有点慢

2)使用 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__": 
 
推荐文章
长情的火锅  ·  python读取excel,获得下拉选中所有选项_python获取下拉菜单内容 excel
3 周前
勤奋的鸭蛋  ·  python - Set up of virtual environment in anaconda failing - Stack Overflow
2 周前
大力的长颈鹿  ·  python - Conda env create from .yml gives "unexpected error" - Stack Overflow
2 周前
讲道义的闹钟  ·  如何释放Python占用的内存?开发者社区
16 小时前
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 - 长安223
16 小时前
骑白马的骆驼  ·  XGP六月下至七月初游戏阵容更新,包含《暗影火炬城》《仙剑奇侠传7》等7款 | 机核 GCORES
2 年前
豁达的丝瓜  ·  盐通铁路启动逐级提速试验:计划年底开通|盐城_新浪科技_新浪网
2 年前
温柔的酱牛肉  ·  《高层访谈》赛力斯汽车销售总经理庞海:SF5有增程式和纯电选择_凤凰网汽车_凤凰网
2 年前
唠叨的碗  ·  46 伙伴(上) - 不败战神 第二季 - 包子漫画
2 年前
慷慨大方的花卷  ·  学霸的黑科技系统(网络小说)_百度百科
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号