跳至正文
View Categories

1 min read

主要内容 #

  • PyQt5代码框架
  • QIcon介绍
  • QMessageBox介绍
  • 1. PyQt5代码框架 #

    PyQt5的常用框架结构是固定的,需要处理的是向框架里添加内容和处理逻辑
    以下为PyQt5的常用框架结构

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    
    
    class Application(QWidget):
        def __init__(self):
            super().__init__()  # 调用父类 QWidget 的构造函数
            self.initUI()       # 界面绘制交给 InitUi 方法
    
        def initUI(self):
    	    # 增加自定义的各种界面操作
    		# 设置窗口的位置和大小,前两个参数表示离屏幕左上角的坐标,后两个参数表示窗口的大小
            self.setGeometry(200, 200, 500, 500)  
            self.setWindowTitle('图标')  # 设置窗口的标题
            self.show()  # 显示窗口
    
    app = QApplication(sys.argv)   # 创建应用程序
    ex = Application()  # 创建窗口对象
    app.exec_()        # 进入消息循环

    后续课程中常用界面,常用控件,常用布局,信号和槽,基本框架都是参考如上框架。

    2. 界面 – QIcon介绍 #

    应用程序图标是一个小的图像,通常在标题栏的左上角显示。
    以下例子中将介绍如何做 pyqt5 的图标。
    如下是QIcon的简单示例:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtGui import QIcon  #导入QIcon
    
    class QIconExample(QWidget):
        def __init__(self):
            super().__init__()  # 调用父类 QWidget 的构造函数
            self.initUI()       # 界面绘制交给 InitUi 方法
    
        def initUI(self):
    		# 设置窗口的图标,确保当前目录下有名为dashima.png的图片,或者自己任意置放图片,根据图片名修改以下参数
            self.setWindowIcon(QIcon('dashima.png')) 
    
            self.setGeometry(200, 200, 500, 500)  # 设置窗口的位置和大小,前两个标志离屏幕左上角的坐标,后两个标志窗口的大小
            self.setWindowTitle('QIcon')  # 设置窗口的标题
            self.show()  # 显示窗口
    
    app = QApplication(sys.argv)
    ex = QIconExample()
    app.exec_()

    3. 界面 – QMessageBox介绍 #

    默认情况下,如果我们单击x按钮窗口就关闭了。
    有时我们想修改这个默认的行为,例如我们在编辑器中修改了一个文件, 当关闭他的时候,我们显示一个消息框确认。

    如下是QMessageBox的简单示例

    import sys
    from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
    
    class QMessageBoxExample(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.setGeometry(200, 200, 500, 500)  # 设置窗口的位置和大小,前两个标志离屏幕左上角的坐标,后两个标志窗口的大小
            self.setWindowTitle('QMessageBox')  # 设置窗口的标题
            self.show()  # 显示窗口
    
        def closeEvent(self, event): # 继承于QWidget,这是个槽函数,在下节课中会讲解什么是槽函数
            reply = QMessageBox.question(self, '这是一条消息标题',
                                         "确定退出吗?", QMessageBox.Yes |
                                         QMessageBox.No, QMessageBox.No)
            if reply == QMessageBox.Yes:
                event.accept()
            else:
                event.ignore()
    
    app = QApplication(sys.argv)
    ex = QMessageBoxExample()
    app.exec_()

    这样在点x的时候会弹出消息框,来确认关闭。

    4. 小结 #

    • PyQt5的代码框架结构是非常固定的,可以在结构上添加想要的功能。
    • QIcon是界面功能,主要用于修改应用程序的图标。
    • QMessageBox是界面功能,主要用于弹出消息框的搭建。

    习题 #