《Python Qt GUI與數據可視化編程》第3章 常用界面組件的使用

第3章  常用界面組件的使用

第2章已經介紹了PyQt5編寫GUI應用程序的基本原理,本章將介紹一些常用的GUI界面設計組件的使用。這些常用組件的使用是比較簡單的,所以實例程序一般是一次融合了幾個組件的使用,而不是逐個的簡單介紹。很多編程細節問題在實例中逐步展開進行解釋。當然,在實例程序中不可能展現一個組件或類的所有方法,讀者在使用中可以通過Qt幫助文檔查找某個類的詳細信息。

3.1 數據輸入輸出

介紹QLineEdit,QSpinBox,QDoubleSpinBox作爲數據輸入輸出組件的使用方法。

圖3-1 實例Demo3_1運行時界面

3.2 QPushButton

QPushButton有個checkable屬性,如果設置爲True,這種情況下QPushButton按鈕可以當做CheckBox或RadioButton使用。

圖3-2是實例Demo3_2運行時界面。最上面一行的三個用於設置文字對齊方式的按鈕只能選擇一個,類似於QRadioButton組件。中間一行用於設置粗體、斜體、下劃線的三個按鈕可以切換選中狀態,類似於QCheckBox組件。下面的三個QCheckBox組件用於控制下方的一個QLineEdit組件的屬性。

圖3-2 實例Demo3_2運行時界面

3.3 QSlider和QProgressBar

使用QSlider、QScrollBar、QProgressBar等作爲輸入或顯示組件。

圖3-4 實例Demo3_3運行時界面

3.4 日期時間數據

日期時間是經常遇到的數據類型,PyQt5中日期時間相關的類有:

  • QTime:時間數據類型,僅表示時間,如 15:21:13。
  • QDate:日期數據類型,僅表示日期,如2018-5-6。
  • QDateTime:日期時間數據類型,表示日期和時間,如2018-05-23 09:12:43。

PyQt5中有專門用於日期、時間編輯和顯示的界面組件,包括:

  • QTimeEdit:編輯和顯示時間的組件。
  • QDateEdit:編輯和顯示日期的組件。若calendarPopup屬性設置爲True,運行時右側按鈕變成下拉按鈕,單擊按鈕時出現一個日曆選擇框,用於在日曆上選擇日期。
  • QDateTimeEdit:編輯和顯示日期時間的組件,也有calendarPopup屬性。
  • QCalendarWidget:一個用日曆形式選擇日期的組件。在日曆上點擊日期發生變化時發射信號selectionChanged(),可響應此信號讀取選擇的日期。

實例Demo3_4用於演示這些日期時間相關的類和界面組件的使用,運行時界面如圖3-5所示。

圖3-5 實例Demo3_4運行時界面

3.5 定時器QTimer

3.6 下拉列表框QComboBox

3.7 QMainWindow與QAction

QMainWindow是主窗口類,可以作爲一個應用程序的主窗口,具有主菜單欄、工具欄、狀態欄等主窗口常見的界面元素。

QAction是直接從QObejct繼承而來的一個類,不是一個可視組件。QAction就是一個實現某些功能的“動作”,可以爲其編寫槽函數,使用一個QAction對象可以創建菜單項、工具欄按鈕,點擊菜單項或工具欄按鈕就執行了關聯的Action的槽函數。

本節的實例Demo3_7主要演示QMainWindow和QAction的使用,程序運行時界面如圖3-10所示。

圖3-10 實例Demo3_7運行時界面

3.8 QListWidget和QToolButton

圖3-16 實例Demo3_8運行時界面

本實例不僅介紹QListWidget的使用,還包括如下一些功能的實現:

  • 使用QTabWidget設計多頁界面,工作區右側就是一個具有三個頁面的TabWidget組件。
  • 使用QToolBox設計分組工具箱,工作區左側是一個有三個分組的ToolBox組件。
  • 使用分割條(QSplitter)設計可以左右分割的界面,工作區的ToolBox組件和TabWidget組件之間有一個水平分割條,運行時可以分割調整兩個組件的大小。
  • 創建Actions,用Actions設計主工具欄。
  • 使用QToolButton按鈕,設置與Action關聯,設計具有下拉菜單功能的ToolButton按鈕,在主工具欄上添加具有下拉菜單的ToolButton按鈕。
  • 使用QListWidget,演示如何創建和添加項,爲項設置圖標和複選框,如何遍歷列表進行選擇。
  • 介紹QListWidget的主要信號currentItemChanged()的功能,編寫響應槽函數。
  • 爲ListWidget組件利用已設計的Actions創建自定義快捷菜單。

3.9 QTreeWidget和QDockWidget

本節介紹QTreeWidget、QDockWidget的使用方法,並且結合QLabel的圖片顯示功能創建一個圖片管理器,圖3-22是實例Demo3_9運行時界面。

圖3-22實例Demo3_9運行時界面

3.10 QTableWidget

圖3-26示例Demo3_10運行時界面

實例Demo3_10以QTableWidget爲主要組件,介紹QTableWidget一些主要操作的實現。實例運行時的界面如圖3-26所示,該實例將介紹以下功能的實現:

  • 設置表格的列數和行數,設置表頭的文字、格式等。
  • 初始化表格數據,設置一批實例數據填充到表格裏。
  • 爲單元格設置圖標,複選框,背景色等操作。
  • 插入行、添加行、刪除當前行的操作。
  • 遍歷表格所有單元格,讀取表格內容到一個QPlainTextEdit組件裏,表格的一行數據作爲一行文本。
  • 表格上選擇的當前單元格變化時,在狀態欄顯示單元格存儲的信息。

3.11 容器類組件與佈局設計

本節再專門介紹一些典型佈局的設計方法和佈局設計的一些技巧,再顯示實現佈局的代碼,以便讀者對佈局設計有更深入的理解。

 

<上一章>                  <回主頁>             <下一章>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章