iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0

本篇目的:了解 QT 內常用元件的屬性編輯方法,以及在 wafer 分析工具內的應用方式

前言

在 Day 9 中我們介紹了如何在 QT designer 中做出主視窗與加入元件,但一個正常的視窗應該符合以下2點:

  1. 功能上:設計的功能皆有對應的 UI 元件可供操作或設定

  2. 外觀上:不可因螢幕大小或拉伸,導致元件排列異常

Day 10 與 Day 11 會針對 QT 元件的功能性做說明。我們可以針對所需功能、選用適當配置,讓我們的工具有更好的使用者體驗。

如何在 QT designer 內調整元件的 property

在 Day 9 中有提到如何加入 UI 元件,而每個 UI 元件均有大量的屬性可以調整,例如字體大小、元件內部的內容、使用者是否可編輯等。元件的屬性可由 Python 指令設定,也可以先在QT designer 內調整。

若要在 QT designer 內設定元件的屬性,請先點選想編輯的元件,然後到右側的 ”屬性編輯器” 找到想編輯的屬性並做對應設定。

https://ithelp.ithome.com.tw/upload/images/20260923/20182319uCAjOJA5C1.png

由於在 QT designer 內編輯的屬性,最後皆會以 Python 指令輸出到 py 檔內,而這個檔案我們不會去編輯它。因此我們適合在 QT designer 內編輯初始值,也就是 ”視窗每次剛開啟時,希望這時各元件呈顯的樣子”,例如預設的上下限值。

以下介紹各個元件的共通、且時常編輯的屬性

  • objectName: 物件的名稱,若要在 Python 內呼叫該物件都要用這裡設定的名稱

  • enabled: 是否可以編輯的屬性,若是 False 則使用者無法編輯
    通常應用方式為先設定 False ,然後使用者執行某動作後將其改成 True 讓它可編輯,避免使用者誤觸

  • text: 顯示的文字內容

  • font: 修改文字格式,如大小、字體等

另外若我們需要在執行期(Runtime)編輯元件的屬性時、我們會在其他 py 檔以程式碼修改該物件的屬性。

在 QT designer 中事先編輯 UI 物件屬性,稱為靜態配置 (static configuration)

而在執行期間因 Python 指令而修改UI 物件屬性,稱為動態配置 (dynamic configuration)

元件功能的介紹 # 1

以下會介紹我常用的 QT 元件,會以”作用 - 可應用情境 - 常手動編輯屬性”來做介紹。我會特別說明在製作統計工具時,這些元件的可能應用方向。以及在實際編寫 Python 腳本時常編輯的屬性。

另外在 PySide6 中所有的 object 前都有一個 "Q",我這裡會寫 PySide6 的名稱,因此若要在QT designer 找元件請省略 Q 即可。

QPushButton

作用:觸發該按鈕指定的功能

可應用情境:讓使用者觸發某功能

常用動態配置屬性:

  • enable - 設定按鍵是否可按。通常使用方式為預先設定無法使用按鍵,然後在使用者作業特定步驟後才解鎖按鍵,避免使用者誤觸

    # pushButton_2 為 QPushButton
    # setEnabled(True) 為按鈕可用,反之為不可用
    pushButton.setEnabled(True)
    

“按下 UI 的按鈕會觸發特定功能” 應該是最直覺的軟體使用方法,因此 QPushButton 是絕大多數觸發 function 會選用的元件。另外 QPushButton 支援長按、短按、連點等多種觸發 function 的方式。

https://ithelp.ithome.com.tw/upload/images/20260923/20182319HXMx4eCqPd.png

關於 QT 元件如何連接與觸發 function,會在 Day 16 說明

QLabel

作用:顯示文字

可應用情境:提示使用者這個頁面/ 物件的對應功能

常用動態配置屬性:

  • 顯示內容 - 若要在 UI 執行時改變文字,使用 label.setText(字串) 指令即可

QLabel 就是一個顯示文字的物件,通常用來提示其他物件的功能。或是執行了某 function 後修改 QLabel 的內容做為給使用者的提示 (例如顯示設定值)。

https://ithelp.ithome.com.tw/upload/images/20260923/201823192RNWl9qp0o.png

QLineEdit

作用:輸入一行簡單的文字

可應用情境:讓使用者輸入片號、自定義檔名等

常用動態配置屬性:

  • 取值 - 使用 lineedit.text() 即可取得 QLineEdit 的內容,要注意 QLineEdit 一律回傳字串

  • 寫入內容 - 若要反向寫入內容到 QLineEdit ,使用 lineedit.setText(字串) 即可

QLineEdit 就只能輸入單行文字、無法換行,且中文/ 英文/ 數字皆可輸入到 QLineEdit 中。因此很適合作為輸入片號等單行、英文數字夾雜的內容。

https://ithelp.ithome.com.tw/upload/images/20260923/20182319JVfDlJMBLM.png

若要輸入的東西有一定格式 (例如固定清單、整數等),建議使用其他元件當輸入介面

QSpinBox & QDoubleSpinBox

作用:輸入整數 (QSpinBox) 或浮點數 (QDoubleSpinBox)

可應用情境:讓使用者輸入 SPEC、調整表格行列數等

常用靜態配置屬性:

  • 上下限、位數與預設值 - 可以事先在 QT designer 中的屬性編輯器做設定,而 QDoubleSpinBox 有位數 (decimals) 可以設定

    https://ithelp.ithome.com.tw/upload/images/20260923/20182319zkRnhVcUjv.png

常用動態配置屬性:

  • 取值 - 使用 spinbox.value() 即可讀取使用者輸入之內容。若元件是 QSpinBox 會回傳整數;若是 QDoubleSpinBox 會回傳浮點數

  • 寫入內容 - 使用 spinbox.setValue(數字) 即可反向寫入數字,當然只能寫入整數或是浮點數

QSpinBox 與 QDoubleSpinBox 非常適合當作輸入 SPEC 的介面,因為它只能輸入數字、且可以卡控上下限,另外若將旁邊的箭頭隱藏可以達到更自然的顯示效果。

https://ithelp.ithome.com.tw/upload/images/20260923/20182319UOxzjXYAY1.png

To be continued →

認識其他常用元件,以及確認各個元件的可以使用方向


上一篇
Day 9: 不要再對 UI code 通靈了 - 使用 QT designer 做出你的第一個 UI 介面
下一篇
Day 11: 必先利其器 - QT designer 的常用物件導覽 # 2
系列文
用 Python 打造最順手的良率統計工具:半導體工程師的模組化開發之道 共 13 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言