居中显示一个主窗口界面
#居中主窗口
import sys
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
from PyQt5.QtGui import QIcon
class CenterForm(QMainWindow):#居中显示主窗口
def __init__(self): #parent把这些控件放到哪里
super(CenterForm,self).__init__()#调用父类
#设置主窗口的标题
self.setWindowTitle("第一个居中的主窗口应用")
#设置窗口的尺寸
self.resize(400,300)
def center(self):#居中显示该窗口
#得到屏幕坐标系
screen=QDesktopWidget().screenGeometry()
#获取窗口坐标系
size=self.geometry()
#获取窗口的居中坐标(newLeft,newTop)
newLeft=(screen.width()-size.width())/2
newTop=(screen.height()-size.height())/2
self.move(newLeft,newTop)
if __name__=="__main__":
app=QApplication(sys.argv)
main=CenterForm()
main.show() #显示窗口
sys.exit(app.exec_()) #进入程序的主循环
退出应用程序
import sys
from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QWidget,QPushButton
class QuitApp(QMainWindow):#退出主窗口
def __init__(self):
super(QuitApp,self).__init__()#调用父类
#设置主窗口的标题
self.setWindowTitle("退出应用")
#设置窗口的尺寸
self.resize(400,300)
#添加Button
self.button1=QPushButton("退出应用")
self.button1.clicked.connect(self.onClick_Button)#将信号与槽关联
#创建水平布局
layout=QHBoxLayout()
layout.addWidget(self.button1)#添加组件
# 把Button1放在layout上,再把layout放在mainFrame上
mainFrame=QWidget()
mainFrame.setLayout(layout)
self.setCentralWidget(mainFrame)
#按钮单击事件方法 自定义的槽)
def onClick_Button(self):
sender=self.sender()#通过sender获得Button
print(sender.text()+'按钮被按下')
app=QApplication.instance()
app.quit()
if __name__=="__main__":
app=QApplication(sys.argv)
main=QuitApp()
main.show() #显示窗口
sys.exit(app.exec_()) #进入程序的主循环
注意:调用onClick_Button方法不能加括号,不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成