- PyQt 教程
- PyQt - 首頁
- PyQt - 簡介
- PyQt - 環境搭建
- PyQt - Hello World
- PyQt - 主要類
- PyQt - 使用 Qt Designer
- PyQt - 元物件
- PyQt 訊號與槽
- PyQt - 訊號和槽
- PyQt - 支援和訊號
- PyQt - 未繫結和繫結訊號
- PyQt - 使用 PyQtSignal 建立新訊號
- PyQt - 連線、斷開和發射訊號
- PyQt - 槽裝飾器
- PyQt - 槽連線
- PyQt 佈局
- PyQt - 佈局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控制元件
- PyQt - 基本控制元件
- PyQt - QLabel 控制元件
- PyQt - QLineEdit 控制元件
- PyQt - QPushButton 控制元件
- PyQt - QRadioButton 控制元件
- PyQt - QCheckBox 控制元件
- PyQt - QComboBox 控制元件
- PyQt - QSpinBox 控制元件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控制元件
- PyQt - QFontComboBox 控制元件
- PyQt - QDoubleSpinBox 控制元件
- PyQt - QToolBox 控制元件
- PyQt - QDialog 類
- PyQt - QMessageBox
- PyQt - 多文件介面
- PyQt - 拖放操作
- PyQt 繪圖 API
- PyQt - 繪圖 API
- PyQt 資料庫
- PyQt - 資料庫處理
- PyQt 基礎知識
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 類
- PyQt 有用資源
- PyQt - 快速指南
- PyQt - 有用資源
- PyQt - 討論
PyQt - 基本控制元件
PyQt 控制元件是用於在 PyQt 應用程式中建立使用者介面的圖形元素。這些控制元件用於各種目的,例如顯示資訊、接受使用者輸入或提供互動控制。PyQt 提供了各種預構建的控制元件,開發人員可以使用它們來高效地構建桌面應用程式。
以下是我們將在本章中逐一討論的控制元件列表。
| 序號 | 控制元件及描述 |
|---|---|
| 1 | QLabel
QLabel 物件充當佔位符,用於顯示不可編輯的文字或影像,或動畫 GIF 的影片。它還可以用作其他控制元件的助記鍵。 |
| 2 | QLineEdit
QLineEdit 物件是最常用的輸入欄位。它提供一個框,可以在其中輸入一行文字。要輸入多行文字,需要使用 QTextEdit 物件。 |
| 3 | QPushButton
在 PyQt API 中,QPushButton 類物件呈現一個按鈕,單擊該按鈕可以程式設計為呼叫某個函式。 |
| 4 | QRadioButton
QRadioButton 類物件呈現一個帶有文字標籤的可選中按鈕。使用者可以選擇表單上提供的多個選項中的一個。此類派生自 QAbstractButton 類。 |
| 5 | QCheckBox
當將 QCheckBox 物件新增到父視窗時,文字標籤前面會出現一個矩形框。與 QRadioButton 一樣,它也是一個可選中按鈕。 |
| 6 | QComboBox
QComboBox 物件提供一個下拉列表,從中選擇專案。它在表單上佔用最小的螢幕空間,只需顯示當前選定的專案。 |
| 7 | QSpinBox
QSpinBox 物件向用戶提供一個文字框,該文字框顯示一個整數,其右側帶有向上/向下按鈕。 |
| 8 | QSlider 控制元件和訊號
QSlider 類物件向用戶提供一個槽,可以在其上移動一個手柄。它是控制有界值的經典控制元件。 |
| 9 | QMenuBar、QMenu 和 QAction
QMainWindow 物件標題欄正下方預留了一個水平 QMenuBar,用於顯示 QMenu 物件。 |
| 10 | QToolBar
QToolBar 控制元件是一個可移動的面板,包含文字按鈕、帶圖示的按鈕或其他控制元件。 |
| 11 | QInputDialog
這是一個預配置的對話方塊,帶有一個文字欄位和兩個按鈕“確定”和“取消”。在使用者單擊“確定”按鈕或按 Enter 鍵後,父視窗將在文字框中收集輸入。 |
| 12 | QFontDialog
另一個常用的對話方塊,字型選擇器控制元件是 QDialog 類的視覺外觀。此對話方塊的結果是 Qfont 物件,父視窗可以使用該物件。 |
| 13 | QFileDialog
此控制元件是檔案選擇器對話方塊。它使使用者能夠瀏覽檔案系統並選擇要開啟或儲存的檔案。可以透過靜態函式或透過在對話方塊物件上呼叫 exec_() 函式來呼叫該對話方塊。 |
| 14 | QTab
如果表單有太多欄位無法同時顯示,則可以將它們排列在選項卡式控制元件每個選項卡下放置的不同頁面中。QTabWidget 提供一個選項卡欄和一個頁面區域。 |
| 15 | QStacked
QStackedWidget 的功能類似於 QTabWidget。它還有助於有效利用視窗的客戶區。 |
| 16 | QSplitter
如果表單有太多欄位無法同時顯示,則可以將它們排列在選項卡式控制元件每個選項卡下放置的不同頁面中。QTabWidget 提供一個選項卡欄和一個頁面區域。 |
| 17 | QDock
可停靠視窗是一個子視窗,可以保持浮動狀態,也可以附加到主視窗的指定位置。QMainWindow 類的主視窗物件有一個為可停靠視窗預留的區域。 |
| 18 | QStatusBar
QMainWindow 物件在底部預留了一個水平欄作為狀態列。它用於顯示永久或上下文狀態資訊。 |
| 19 | QList
QListWidget 類是基於專案的介面,用於向列表中新增或刪除專案。列表中的每個專案都是一個 QListWidgetItem 物件。可以將 ListWidget 設定為可多選。 |
| 20 | QScrollBar
捲軸控制元件使使用者能夠訪問文件中位於可見區域之外的部分。它提供當前位置的視覺指示。 |
| 21 | QCalendar
QCalendar 控制元件是一個有用的日期選擇器控制元件。它提供基於月份的檢視。使用者可以使用滑鼠或鍵盤選擇日期,預設日期為今天的日期。 |
PyQt 中控制元件的優勢
- 豐富的預構建控制元件集 − PyQt 提供了大量預構建的控制元件,涵蓋了從基本輸入欄位到複雜資料視覺化元件的各種功能。這個豐富的庫透過為常見的 UI 元素提供現成的解決方案,節省了開發人員的時間和精力。
- 跨平臺相容性 − PyQt 控制元件旨在輕鬆地在多個平臺上執行,包括 Windows、macOS、Linux 和各種移動平臺。這種跨平臺相容性確保了使用 PyQt 開發的應用程式可以在各種裝置上部署,而無需進行大量修改。
- 自定義選項 − PyQt 控制元件高度可定製,這有助於我們更改 UI 元件的外觀和行為以滿足特定需求。可以使用 PyQt 的 API 輕鬆調整顏色、大小、字型和對齊方式等屬性,這有助於開發人員建立視覺上吸引人且使用者友好的介面。
- 活躍的社群和支援 − PyQt 擁有一個非常活躍的開發人員社群,他們為其開發做出貢獻,提供支援,並透過論壇、郵件列表和線上資源分享知識。這個社群驅動的生態系統確保開發人員在使用 PyQt 時可以獲得所有專業知識和幫助。
- 效能和效率 − PyQt 構建在 Qt 框架之上,而 Qt 框架以其高效能和效率而聞名。PyQt 應用程式響應時間快,消耗的系統資源最少,使其適用於各種用例。
一些基本控制元件的示例
QLabel
import sys
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel('Hello, World!')
label.show()
sys.exit(app.exec_())
輸出
以上程式碼產生以下輸出:
QLineEdit
import sys from PyQt5.QtWidgets import QApplication, QLineEdit app = QApplication(sys.argv) line_edit = QLineEdit() line_edit.show() sys.exit(app.exec_())
輸出
以上程式碼產生以下輸出:
QPushButton
import sys
from PyQt5.QtWidgets import QApplication, QPushButton
app = QApplication(sys.argv)
button = QPushButton('Click me')
button.show()
sys.exit(app.exec_())
輸出
以上程式碼產生以下輸出:
我們將在接下來的幾章中詳細瞭解所有這些控制元件。