簡體   English   中英

有沒有辦法在 tkinter window 中顯示文件瀏覽器而不是打開文件對話框?

[英]Is there any way to show the file browser INSIDE a tkinter window rather than an open file dialogue?

我正在嘗試在 Tkinter 中創建一個程序,該程序在 window 的左側有一個文件瀏覽器/資源管理器,右側有一個顯示文件內容的部分。 我只能找到打開單獨文件對話框 window 並希望在主 window 中實際顯示文件資源管理器的解決方案。 不太確定如何 go 關於這個所以任何幫助將不勝感激。 干杯!

我的理解是,用於導航目錄的標准 Tkinter function 使用操作系統的文件資源管理器系統來執行此操作,因此(據我所知)沒有簡單的方法可以簡單地將其嵌入到您的應用程序中。 如果您需要這樣的東西,您將需要構建自己的文件導航軟件,或者找到可以為您完成的第三方 package。

要自己實現它,您可以使用 os 模塊來確定用戶系統上目錄的內容。 具體情況取決於您的要求,但例如,如果您只需要訪問運行腳本的文件夾:

import os
script_directory = os.path.dirname(os.path.abspath(__file__))
# Now, let's build our file/folder list
dir_contents = []
for subdir, dirs, files in os.walk(script_directory):
    dir_contents = [subdir, dirs, files]
    break

在這里,代碼將遍歷目錄script_directory和所有文件夾。 由於在此示例中我們只對script_directory本身感興趣,因此我們在單次迭代后使用break來停止。

subdir將是os.walk每次迭代的子目錄名稱。 dirs將是subdir中所有文件夾的列表。 files將是subdir中所有文件的列表。

然后,您將需要實現按鈕和其他小部件來顯示結果並允許導航和文件操作,這可能需要對os模塊進行其他調用以建立用戶導航到的目錄的內容。 如果您需要訪問多個目錄位置,我建議實施 class 來處理此問題,而不是嘗試將其全部填充到深度嵌套的列表中。

當然,這是一項艱巨的工作,所以我只會在對項目絕對必要的情況下推薦它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM