# encoding = "utf-8"
"""
for test
"""
import sys
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QToolTip, QMessageBox, QDesktopWidget
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication
class MyWindow(QWidget): #从QWighet继承(主要是为了它的函数)
def __init__(self):
super().__init__() #不懂
self.initUI() #调用下方的initUI函数
def initUI(self):
self.setGeometry(300, 200, 500, 300) #窗口大小、位置
self.setWindowTitle('MainWindow') #窗口标题
self.setWindowIcon(QIcon('Icon/test1.jpg')) #生成一个QIcon对象,作为图标
QToolTip.setFont(QFont('微软雅黑',15)) #生成一个QFont对象作为参数,设置提示字的格式
self.setToolTip("这是<b>主窗口</b>") #self的主窗口提示字
button = QPushButton('退出',self) #button按钮,text为'退出',属于'self'
button.setToolTip("点击<b>退出</b>") #button提示字
button.resize(button.sizeHint()) #button重定义大小为默认值,.sizeHint前面是该按钮变量名
button.move(100, 100) #button移动位置
button.clicked.connect(QCoreApplication.instance().quit) #button的点击与退出联系
self.centor()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', "确定退出?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
#reply接受消息盒的选择(Yes/No)
if reply == QMessageBox.Yes: # 经测试,QMessageBox.Yes == 16284, 而QMessageBox.No等于另一个数字
event.accept() #继续,退出
else:
event.ignore() #忽略,不退出
def centor(self):
cp = QDesktopWidget().availableGeometry().center() #得到中心点的位置
self.move(cp.x()-int(self.width() / 2), cp.y()-int(self.height() / 2)) #计算窗口左上角应处的位置(int/float没转化)
if __name__ == "__main__":
app = QApplication(sys.argv) #初始化应用必备
MainWin = MyWindow() #实例化MyWindow类,自动初始化
MainWin.show() #显示窗口
sys.exit(app.exec_()) #安全退出