当前位置:   article > 正文

Python PyQt5简介_qt5 python

qt5 python

系列文章目录



前言

本篇文章适合想要学习PyQt5的且为初学者人群(但必须会python的基本语法),我会为大家介绍使用 pyqt 编写的 gui 程序的基本结构,旨在帮助初学者能快速地理清如何使用pyqt
环境:

  • windows11
  • python3
  • pyqt5(已经有pyqt6了,但由于pyqt5还是用得挺多的)

一、PyQt是什么?

简单地说,PyQt = Python + Qt。
python:一门热门的编程语言,既然能看到这篇文章,肯定都会。

Qt:Qt是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,就是一个用c++编写的gui库,里面都是一些能让计算机 显示出特定图形的和管理这些图形 的代码

PyQt:由于c++学习难度相对较大,用起来有些难受,所以有人就想用能不能简单一点的python来使用qt这个图形库,让开发更有效率。简单地说就是用python使用由c++编写的qt。而PyQt5就是第五个大版本。

二、PyQt5安装

pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple # 使用清华大学的镜像
  • 1

三、PyQt5程序基本结构

1、PyQt5:QtCore、QtGui、QtWidgets

我们先了解一下pyqt5的三个用的 最多的大模块(因为它还有很多个大的模块)

  • QtCore
    QtCore 是PyQt5下面的一个模块,QtCore模块涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及到的 time、文件、目录、数据类型、文本流、链接、mime、线程或进程等对象。这部分和我们常见的普通的python的功能挺像的,但是还是有点不同
    比如:QFile(qt的文件)、QTimer(qt的计数器)
  • QtGui
    QtGui 是PyQt5下面的一个模块,QtGui模块涵盖多种基本图形功能的类; 包括但不限于:窗口集、事件处理、2D图形、基本的图像和界面 和字体文本。
    比如 font = QFont(),一个字体对象
  • QtWidgets
    在Qt中,生成窗口有三种方式: QWidget | QMainWindow | QDialog (以上都是QtWidgets的子类)页面的主窗口,一般看成一个容器,一个用来作画的画布。

2、示例程序

import sys
# from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class window(QWidget):
	# 全体目光向我看齐
    def __init__(self, parent = None): # 本类初始化
        super().__init__(parent) # 父类(Qwidget)初始化,这是必须的

        # 以下为Qwidget的内容(也就是执行时出现的图形),self 这里代表父类Qwidget
        # 就是在设置我们看到的图形的属性,比如大小,字体等等
        self.resize(200, 50)
        self.setWindowTitle("PyQt5")
        self.label = QLabel(self)
        self.label.setText("Hello World")

        # 以下是qtgui
        font = QFont()
        font.setFamily("Arial")
        font.setPointSize(16)

        self.label.setFont(font) # 将设定的字体作用于qwidget上
        self.label.move(50, 20)
        # 到这为止都是编写图形的代码,用到了QtWidgets、QtGui,由于过于简单没用到 QtCore 
    
def main():
    app = QApplication(sys.argv) # 程序的起点
    
    # 一个window类的实例,会直接执行__init__(self, parent = None),主要的程序体
    # 我接着就看到__init__方法,其实这部分代码不一定要放到__init__中,这段代码的作用就是设定
    # 只要在show方法执行前设定完毕,在哪不影响结果
    # 图形的属性
    ex = window()
    
    # 然后从__init__方法出来之后就到这里了,到这里说明图形以及被我们构造好了
    # 调用父类的show方法,表示展示我们所编写的内容 
    # 一般会一直循环展示
    ex.show() 
        
    # app.exe() : 执行PyQt5程序,执行的内容从app = QApplication(sys.argv)开始
    # 如果执行异常则退出
    sys.exit(app.exec())

if __name__=="__main__":
    main() # 执行main方法
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

我们先了解pyqt5运行的基本要点。

  • 一般它有一个起点,QApplication;
  • 然后我们在中间进行编程,程序会一直循环运行中间的主要的程序体;而中间就是一个大容器,一般为QWidget 或 QMainWindow,也是一个大画布,一个大父组件。其余的都在这之上。我们看到的图形就是这个。
  • 最后QApplication([]).exec()开始运行,运行的是中间编写的主要程序体,会循环运行,不是运行一下就直接退出。搞不懂的就看例子吧,例子永远是最能让人理解的。

让我们一步步地解析该程序。总体的过程,执行python程序,从 main()方法开始,接着直接看程序的注释吧。

程序执行结果
在这里插入图片描述


总结

以上就是今天要讲的内容,本文仅仅简单介绍了PyQt5,通过这篇文章至少能了解到PyQt5的最简单的结构与基本使用方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/76287
推荐阅读
相关标签
  

闽ICP备14008679号