【Python】 如何使用 PyQt5 的 QFileDialog 選取多個檔案 ?

【Python】 如何使用 PyQt5 的 QFileDialog 選取多個檔案 ?

什麼是 QFileDialog ?

QFileDialog 是 PyQt 提供的一個標準對話框,用於讓使用者透過圖形介面瀏覽電腦檔案系統並選取檔案或資料夾。它使得應用程式可以輕鬆實現打開、保存檔案等功能。


QFileDialog.getOpenFileNames() 使用方式

傳入參數解釋

  • parent :
    設定對話框的父元件。若設定為 None,表示這個對話框不依附於特定的父視窗;在 PyQt 應用中,你也可以傳入一個現有的 QWidget 實例來作為父元件。

    若指定父元件,對話框通常會置於父元件的中央,並且當父元件關閉時對話框也會一併關閉。

  • caption :
    對話框的標題文字,讓使用者能夠清楚知道此對話框的用途。

  • directory :
    指定打開對話框時預設顯示的目錄。若設定為空字串 "",表示使用系統預設目錄;你也可以傳入像是 "/home/user/Documents" 這樣的路徑。

  • filter :
    檔案過濾字串,用來限制使用者在對話框中能看到的檔案類型。幫助使用者更方便地找到需要的檔案類型,同時也可以防止選取到不相關的檔案。

    所有檔案(.)」會顯示所有檔案;「圖片 (*.png .jpg)」僅顯示副檔名為 .png 與 .jpg 的檔案;「文字檔 (.txt)」則僅顯示 .txt 格式的檔案,各個過濾選項之間用「;;」分隔。


返回值

  • files :
    一個列表,包含使用者選取的所有檔案的完整路徑。例如 : ['/path/to/file1.txt', '/path/to/file2.png']

  • selected_filter :
    使用者當下選擇的檔案過濾規則,這可以讓你知道使用者當時的選擇,並根據需要做後續處理。例如 : "文字檔 (*.txt)"

# 呼叫 QFileDialog.getOpenFileNames() 打開選檔對話框
files, selected_filter = QFileDialog.getOpenFileNames(
    <parent>,
    <caption>,
    <directory>,
    <filter>
)


範例程式碼 :

其他 QFileDialog 以外模組的相關說明可以到 《【Python】使用 PyQt5 建構簡單視窗並顯示 “Hello World” 》一文中了解。

from PyQt5.QtWidgets import QApplication, QFileDialog
import sys

app = QApplication(sys.argv)

files, selected_filter = QFileDialog.getOpenFileNames(
    None,
    "選擇檔案",
    "",
    "所有檔案(*.*);;圖片(*.png *.jpg);;文字檔(*.txt)"
)

print("選取的檔案:", files)
print("使用者當時的選擇:", selected_filter)



發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *