PyQt5主要类介绍
PyQt5 API拥有620多个类和6000个函数。它是一个跨平台的工具包,可以运行在所有主流的操作系统上,包括Windows、Linux和Mac OS。
- QObject类:在类层次结构中是顶部类(Top Class),它是所有PyQt对象的基类。
- QPaintDevice类:所有可绘制的对象的基类。
- QApplication类:用于管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,对来自窗口系统和其他资源的所有事件进行处理和调度;它也对应用程序的初始化和结束进行处理,并且提供对话管理;还对绝大多数系统范围和应用程序范围的设置进行处理。
- QWidget类:所有用户界面对象的基类。QDialog类和QFrame类继承自QWidget类,这两个类有自己的子类系统(Sub-Class System)。
- QFrame类:有框架的窗口控件的基类。它也被用来直接创建没有任何内容的简单框架,但是通常要用到QHBox或QVBox,因为它们可以自动布置放到框架中的窗口控件。
- QMainWindow类:提供一个有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口。
- QDialog类:最普通的顶级窗口。如果一个窗口控件没有被嵌入到父窗口控件中,那么该窗口控件就被称为顶级窗口控件。在通常情况下,顶级窗口控件是有框架和标题栏的窗口。在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。
PyQt5中重要的类及其继承关系如下:
上面的类图是使用UML建模工具Edraw UML Diagram绘制的。比如在图1所示的类图中,每一个方框代表一个PyQt 5的类,在方框的第一行显示的是类名,方框之间通过箭头符号表示类与类之间的继承关系。
继承指的是一个类(称为子类)继承另一个类(称为父类)的功能,通过继承可以增加子类的新功能。
PyQt5常用的控件:
- 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来创建主窗口。