PyQt 主要类



PyQt 模块

PyQt API 包含大量的类和方法。这些类定义在 20 多个模块中。以下是常用的一些模块:

序号 模块及描述
1

QtCore

其他模块使用的核心非 GUI 类

2

QtGui

图形用户界面组件

3

QtMultimedia

低级多媒体编程类

4

QtNetwork

网络编程类

5

QtOpenGL

OpenGL 支持类

6

QtScript

用于评估 Qt 脚本的类

7

QtSql

使用 SQL 进行数据库集成的类

8

QtSvg

用于显示 SVG 文件内容的类

9

QtWebKit

用于渲染和编辑 HTML 的类

10

QtXml

用于处理 XML 的类

11

QtAssistant

在线帮助支持

12

QtDesigner

用于扩展 Qt Designer 的类

PyQt 中的类

PyQt API 包含 400 多个类。QObject 类位于类层次结构的顶层。它是所有 Qt 对象的基类。此外,QPaintDevice 类是所有可绘制对象的基类。

QApplication 类管理 GUI 应用程序的主要设置和控制流程。它包含主事件循环,在该循环中处理和分派由窗口元素和其他来源生成的事件。它还处理系统范围和应用程序范围的设置。

QWidget 类继承自 QObject 和 QPaintDevice 类,是所有用户界面对象的基类。QDialogQFrame 类也继承自 QWidget 类。它们有自己的子类系统。

下图显示了一些重要类及其继承关系。

Hierarchy QWidget QDialog QIODevice QPaintDevice

这里列出了一些常用的控件:

以下是常用的控件。

序号 控件及描述
1

QLabel

用于显示文本或图像

2

QLineEdit

允许用户输入一行文本

3

QTextEdit

允许用户输入多行文本

4

QPushButton

一个命令按钮,用于触发操作

5

QRadioButton

允许从多个选项中选择一个

6

QCheckBox

允许选择多个选项

7

QSpinBox

允许增加/减少整数值

8

QScrollBar

允许访问超出显示区域的控件内容

9

QSlider

允许线性更改绑定值。

10

QComboBox

提供一个下拉列表供用户选择

11

QMenuBar

包含 QMenu 对象的水平条

12

QStatusBar

通常位于 QMainWindow 底部,提供状态信息。

13

QToolBar

通常位于 QMainWindow 顶部或浮动。包含操作按钮

14

QListView

以 ListMode 或 IconMode 提供一个可选择的项目列表

15

QPixmap

用于在 QLabel 或 QPushButton 对象上显示的屏幕外图像表示

16

QDialog

模态或非模态窗口,可以将信息返回给父窗口

一个典型的基于 GUI 的应用程序的顶级窗口是由QMainWindow 控件对象创建的。上面列出的一些控件在其指定位置占据主窗口,而其他控件则使用各种布局管理器放置在中央控件区域。

下图显示了 QMainWindow 框架:

QMainWindow

PyQt 中一些主要类的示例

1. QMainWindow:GUI 应用程序的基础

QMainWindow 代表主应用程序窗口,提供一个集中的中心来组织控件、菜单、工具栏等等。通过继承 QMainWindow,开发人员可以快速创建健壮的应用程序框架,而无需编写大量的样板代码。

from PyQt6.QtWidgets import QMainWindow, QApplication
import sys
class MainWindow(QMainWindow):
   def __init__(self):
      super().__init__()
      self.initUI()

   def initUI(self):
      # Initialize and configure UI elements
      self.setWindowTitle("PyQt Major Classes Demo")

if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = MainWindow()
   window.show()
   sys.exit(app.exec())
输出
PyQt Main Window

2. QWidget:用户界面的构建块

在 PyQt 中,QWidget 用作构建用户界面的基本构建块。从按钮到文本输入,屏幕上的每个可见元素最终都源自 QWidget 类。

from PyQt6.QtWidgets import QMainWindow, QApplication, QWidget
import sys
class CustomWidget(QWidget):
   def __init__(self):
      super().__init__()
      self.initUI()

   def initUI(self):
      # Initialize and configure custom UI elements
      self.setWindowTitle("PyQt Qwidget class")

if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = CustomWidget()
   window.show()
   sys.exit(app.exec())
输出
PyQt Qwidget

3. QLabel、QPushButton 及其他:专用控件

除了 QMainWindow 和 QWidget 等核心类之外,PyQt 还提供了许多专门的控件,以满足不同的使用场景。QLabel 用于显示文本和图像,QPushButton 用于创建交互式按钮,而 QComboBox 和 QCheckBox 简化了用户输入和选择。

import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget

class MainWindow(QMainWindow):
   def __init__(self):
      super().__init__()
      self.initUI()

   def initUI(self):
      self.setWindowTitle("PyQt Major Classes Demo")

      # Create QLabel
      label = QLabel("Hello, PyQt!")

      # Create QPushButton
      button = QPushButton("Click Me")
      button.clicked.connect(self.onButtonClick)

      # Create a vertical layout
      layout = QVBoxLayout()
      layout.addWidget(label)
      layout.addWidget(button)

      # Create a central widget and set the layout
      central_widget = QWidget()
      central_widget.setLayout(layout)
      self.setCentralWidget(central_widget)

   def onButtonClick(self):
      print("Button clicked!")

if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = MainWindow()
   window.show()
   sys.exit(app.exec())
输出
PyQt Other Classes
广告