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
廣告
© . All rights reserved.