iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Software Development

Python GUI 專案設計模式及好用的開發技巧系列 第 18

如何使用WYSIWYG Python GUI 設計工具快速設計出子視窗及產出程式碼呢?

  • 分享至 

  • xImage
  •  

Python GUI中如果只有一個主視窗那將會很不好用,那該如何快速設計出不同的子視窗呢?
網路上有非常多關於PyQT或pySide2的教學, 都是直接開記事本寫程式碼後就出現UI了或者是使用qt designer 後在命令列底下下複雜的參數指令PyUIC 去產生程式碼,但筆者超不愛這樣的做法。因為太麻煩又不直觀,筆者想要的是像C# 一樣,使用拖拉的方式就可以設計好GUI並且可以方便的自動產生出相對應的程式碼後就可以用了 ...

使用工具

  • pyside2-designer

快速設計好不同子視窗的方式

  1. 打開pyside2-designer
  2. 建立一個新的widget (子視窗都需要使用這個模式)
  3. 設計UI , 新增第三個子視窗 (原本已經設計一個主視窗及第二個子視窗)
  4. 匯出程式碼
    • 選取要匯出程式碼的UI (例如: 第三個視窗)

      [筆記] 觀察圖中紅框處,代表是筆者點選的部分,綠框的部分標題列顏色較淡,代表未被選取。產生程式碼的功能,可以點選不同的UI就直接產生相對應的程式碼。非常方便
    • 使用menu\ 表單\View Python Code

/images/emoticon/emoticon66.gif

那,主程式的部分呢?

  1. 首先要匯入所有視窗的python 檔
  • 主視窗: p3
  • 第二視窗: p2s
  • 第三視窗: p3s
    [筆記] 由於子視窗匯入的名稱都一樣,筆者建議在後面加不同的別名做區隔
from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import *
from p3 import Ui_MainWindow
from p2s import Ui_Form as Ui_second
from p3s import Ui_Form as Ui_third
import sys
  1. 在主視窗的class中引入第二個視窗及建立第二個視窗的class
  • 綠框處: 筆者設計一個按鈕, 按下後會開啟第二個視窗 並設定label的背景顏色為綠色
  • 紅框處: 第二個視窗的class
  1. 依樣畫葫蘆, 在第二個視窗中心引入第三個視窗及建立第三個視窗的class
  • 綠框處: 設定label的背景色為黃色
  • 紅框處: 設計一個按鈕, 按下後會開啟第三個視窗 並設定label的背景顏色為黃色

執行效果:

參考資料


上一篇
如何使用cython來打包程式碼成pyd格式 (就是DLL檔的意思)
下一篇
讓Python GUI 畫面在最前方顯示/ 最小化顯示/ 隱藏桌面圖示的方法
系列文
Python GUI 專案設計模式及好用的開發技巧31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言