PyQt5 PyCharm Qt篇(1):简单得不能再简单的应用程序


 
# 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_())    #安全退出

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章