項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【PyQt5】Day 10 – 以 QFileDialog 讀取系統的檔案、資料夾

看完這篇文章你會得到的成果圖

前言

我們接下來的討論,會基於讀者已經先讀過我 day5 文章 的架構下去進行程式設計
如果還不清楚我程式設計的邏輯 (UI.py、controller.py、start.py 分別在幹麻)
建議先閱讀 day5 文章後再來閱讀此文。

【PyQt5】Day 5 – 開始來設計我們的 controller.py,改以「程式角度」來說明如何建立 PyQt 的系統

此篇文章的範例程式碼 github

https://github.com/howarder3/ironman2021_PyQt5_photoshop/tree/main/day10_open_file

以 QFileDialog 讀取系統的檔案、資料夾

我們可以使用 QFileDialog 來開啟每個作業系統的檔案功能,
這部分我們會在 controller.py 當中進行實作。

UI 設計部份 (UI.py)

這次我們設計兩個按鈕,與對應的顯示檔案路徑的地方,
這次我們使用 QTextEdit 來幫助我們顯示路徑

(相對 Qlabel 的好處是,如果文字太長的話,會自動換行)

一樣記得改一下變數,不然等等容易搞不清楚誰是誰。

而今天的 UI 設計部份就比較簡單,
因為等等的檔案處理我們會花比較多一點時間來實作。

轉換成 UI.py

一樣的編譯指令,我們加上 -x (也可不加),
我們就可以先檢視看看轉換後的視窗是不是跟我們想像的一樣。

轉換 day10.ui -> UI.py

pyuic5 -x day10.ui -o UI.py

執行看看 UI.py 畫面是否如同我們想像

一樣,這程式只有介面 (視覺上的呈現),沒有任何互動功能

  • 看看我們製作出來的介面
python UI.py

接下來我們要開始去改變裡面的內容。

controller 設計部份 (controller.py)

設定開啟 檔案/資料夾 的功能

接下來我們想藉由按鍵來觸發開啟 檔案/資料夾 的功能,
我們呼叫 QFileDialog 來協助完成這個功能,
在這個功能的底層,已經有針對不同作業系統實作對應開啟檔案的功能。

請不要只看表面誤會以為 Windows, Mac, Linux 開啟檔案都是同一種實作方式
實際上這部份依據不同作