python 按钮点击关闭窗口的实现
1、简介
1)使用python创建主窗口
2)设置标题栏图标,文字
3)设置状态栏图标文字
4)将窗口移动到屏幕中间
2、功能实现
1)QtDesign实现
就是先画ui然后转python
#-*-coding:utf-8-*-
#Formimplementationgeneratedfromreadinguifile'untitled.ui'
#
#Createdby:PyQt5UIcodegenerator5.11.3
#
#WARNING!Allchangesmadeinthisfilewillbelost!
importsys
fromPyQt5importQtCore,QtGui,QtWidgets
fromPyQt5.QtWidgetsimportQApplication
classUi_MainWindow(object):
defsetupUi(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)
defretranslateUi(self,MainWindow):
_translate=QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow","MainWindow"))
self.pushButton.setText(_translate("MainWindow","关闭窗口"))#设置按钮文字
defonButtonClick(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中主窗口例子
'''
importsys
fromPyQt5.QtWidgetsimportQMainWindow,QApplication,QDesktopWidget,QPushButton,QHBoxLayout,QWidget
fromPyQt5.QtGuiimportQIcon
classMainWidget(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)
defonButtonClick(self):
#sender是发送信号的对象,此处发送信号的对象是button1按钮
sender=self.sender()
print(sender.text()+'被按下了')
qApp=QApplication.instance()
qApp.quit()
defcenter(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_())
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。