PyQT5 简介

  • Post author:
  • Post category:其他




PyQT5 背景

Qt(音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。

但Qt 是纯 C++ 开发的

PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成。

PyQt5的官方网站是:

https://www.riverbankcomputing.com/static/Docs/PyQt5/



常用模块

PyQt5的类别分为几个模块,包括:

  • QtCore:包含非核心的GUI功能,此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程
  • QtGui:包括窗口系统集成、事件处理、二维图形、基本成像、字体和文本
  • QtWidgets:基本控件都位于pyqt5.qtwidgets模块中,模块包含创造经典桌面风格的用户界面提供了一套UI元素的类
  • QtMultimedia:包括的类来处理多媒体内容和API来访问相机和录音机的功能
  • Qtbluetooth:模块包含类的扫描设备和连接并与他们互动。描述模块包含了网络编程的类。这些类便于TCP和IP和UDP客户端和服务器的编码,使网络编程更容易和更便携。
  • Qtpositioning:包含类的利用各种可能的来源,确定位置,包括卫星、Wi-Fi、或一个文本文件。
  • Enginio:模块实现了客户端库访问Qt云服务托管的应用程序运行时。
  • Qtwebsockets:模块包含实现WebSocket协议类。
  • QtWebKit:包含一个基于Webkit2图书馆Web浏览器实现类。
  • Qtwebkitwidgets:包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现。
  • QtXml:包含与XML文件的类。这个模块为SAX和DOM API提供了实现。
  • QtSvg:模块提供了显示SVG文件内容的类。可伸缩矢量图形(SVG)是一种描述二维图形和图形应用的语言。
  • QtSql:模块提供操作数据库的类。
  • QtTest:包含的功能,使pyqt5应用程序的单元测试



主要类

  • QObject类:在类层次结构中是顶部类(Top Class),它是所有PyQt对象的基类。

  • QPaintDevice类:所有可绘制的对象的基类。

  • QApplication类:用于管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,对来自窗口系统和其他资源的所有事件进行处理和调度;它也对应用程序的初始化和结束进行处理,并且提供对话管理;还对绝大多数系统范围和应用程序范围的设置进行处理。

  • QWidget类:所有用户界面对象的基类。QDialog类和QFrame类继承自QWidget类,这两个类有自己的子类系统(Sub-Class System)。

  • QFrame类:有框架的窗口控件的基类。它也被用来直接创建没有任何内容的简单框架,但是通常要用到QHBox或QVBox,因为它们可以自动布置放到框架中的窗口控件。

  • QMainWindow类:提供一个有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口。

  • QDialog类:最普通的顶级窗口。如果一个窗口控件没有被嵌入到父窗口控件中,那么该窗口控件就被称为顶级窗口控件。在通常情况下,顶级窗口控件是有框架和标题栏的窗口。在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。

上面的类图是使用UML建模工具Edraw UML Diagram绘制的。比如在图A-2所示的类图中,每一个方框代表一个PyQt 5的类,在方框的第一行显示的是类名,方框之间通过符号表示类与类之间的继承关系。继承指的是一个类(称为子类)继承另一个类(称为父类)的功能,通过继承可以增加子类的新功能。



常用控件

  • QLabel控件:用来显示文本或图像。

  • QLineEdit窗口控件:提供了一个单页面的单行文本编辑器。

  • QTextEdit窗口控件:提供了一个单页面的多行文本编辑器。

  • QPushButton窗口控件:提供了一个命令按钮。

  • QRadioButton控件:提供了一个单选钮和一个文本或像素映射标签。

  • QCheckBox窗口控件:提供了一个带文本标签的复选框。

  • QspinBox控件:允许用户选择一个值,要么通过按向上/向下键增加/减少当前显示值,要么直接将值输入到输入框中。

  • QScrollBar窗口控件:提供了一个水平的或垂直的滚动条。

  • QSlider控件:提供了一个垂直的或水平的滑动条。

  • QComboBox控件:一个组合按钮,用于弹出列表。

  • QMenuBar控件:提供了一个横向菜单栏。

  • QStatusBar控件:提供了一个适合呈现状态信息的水平条,通常放在QMainWindow的底部。

  • QToolBar控件:提供了一个工具栏,可以包含多个命令按钮,通常放在QMainWindow的顶部。

  • QListView控件:可以显示和控制可选的多选列表,可以设置ListMode或IconMode。

  • QPixmap控件:可以在绘图设备上显示图像,通常放在QLabel或QPushButton类中。

  • Qdialog控件:对话框窗口的基类。

  • QWidget是所有用户界面类的基类,它能接收所有的鼠标、键盘和其他系统窗口事件。没有被嵌入到父窗口中的Widget会被当作一个窗口来调用,当然,它也可以使用setWindowFlags(Qt.WindowFlags)函数来设置窗口的显示效果。QWidget的构造函数可以接收两个参数,其中第一个参数是该窗口的父窗口;第二个参数是该窗口的Flag,也就是- Qt.WindowFlags。根据父窗口来决定Widget是嵌入到父窗口中还是被当作一个独立的窗口来调用,根据Flag来设置Widget窗口的一些属性。

  • QMainWindow(主窗口)一般是应用程序的框架,在主窗口中可以添加所需要的Widget,比如添加菜单栏、工具栏、状态栏等。主窗口通常用于提供一个大的中央窗口控件(如文本编辑或者绘制画布)以及周围的菜单栏、工具栏和状态栏。QMainWindow常常被继承,这使得封装中央控件、菜单栏,工具栏以及窗口状态变得更容易,也可以使用Qt Designer来创建主窗口。



版权声明:本文为weixin_45468845原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。