簡體   English   中英

加快 QFileDialog 文件瀏覽器在默認目錄中顯示文件夾/文件的速度

[英]Speed up the QFileDialog File Browser displaying folders/files in the default directory

操作系統:Win10、QT:PySide2

我在 python 中實現了一個程序,它從相機中獲取圖像。 通過按下“開始序列”按鈕觸發該圖像采集序列。 為了確定我使用 QFileDialog 的圖像的保存目錄。 因此,“開始序列”按鈕首先打開一個文件瀏覽器,用戶可以在其中選擇要存儲序列的文件夾。 然后開始圖像采集。 文件瀏覽器的代碼如下所示:

def get_dir(self, name) # name is only a string
    start_dir = "D://data_someperson//"
    dialog = QFileDialog()
    options = dialog.Options()
    options |= dialog.DontUseNativeDialog # i dont know what this is doing, but without it nothing works
    dialog.setFileMode(QFileDialog.Directory)
    filename = dialog.getExistingDirectory( None, name, start_dir, options = options)
    return filename

如上所述,上面的代碼在“start_dir”位置打開了一個文件瀏覽器。 因此文件瀏覽器將在“D://data_someperson//”中啟動,用戶可以從中創建新文件夾或選擇現有文件夾。 然后將其作為“文件名”返回,其中圖像采集代碼存儲相機圖片。 現在這在 start_dir 等於我的程序的工作目錄的條件下有效。 例如,我在“D://data_otto”中通過 VScode 運行我的主程序,並且 start_dir 設置為“D://data_otto”。 在這里,文件瀏覽器會立即(彈出時)顯示“D://data_otto”中的所有現有文件,用戶可以輕松創建新文件夾而不會出現任何問題。

我現在的問題如下:如果“start_dir”不等於“D://data_otto”(例如,它 start_dir 等於“D://data_peter”),文件瀏覽器會像往常一樣在“start_dir”中彈出,但是基本上嘗試“加載”我機器上的每個現有文件,然后在“start_dir”中顯示文件,用戶應該在其中選擇一個保存目錄。 當用戶在“start_dir”中創建新文件夾時也是如此。 如果用戶創建一個新文件夾並在 gui 中確認它,function“getExistingDirectory”仍然等待所有文件被加載,有點在后台。

這會使我的數據采集延遲一分鍾。 “D://”是硬盤 DT01ACA100 1TB 和 ~800Gb 被占用。 我認為我的問題可以通過使用更快的驅動器來解決,但必須有一種方法來限制 Filebrowser 的 scope 它加載顯示的文件,但我在文檔中找不到這樣的解決方法......我觀察到,文件夾start_dir 中的文件在加載一小段時間后會被緩存。 延長這段時間也會有所幫助......

好的,我通過斷開兩個無法訪問的“網絡位置”作為驅動器“Y:”和“Z:”出現在“這台電腦”下,解決了我的問題。 它們無法訪問(在資源管理器中顯示為紅十字),因為 PC 已與其本地網絡斷開連接並移至另一個網絡。 因此,只需右鍵單擊它們並在下拉菜單中選擇“斷開連接”即可刪除這些“網絡位置”。 之后,文件瀏覽器不再有任何問題,所需的一切都會立即顯示出來。 不再有延遲/加載/緩沖。 感謝https://stackoverflow.com/users/2001654/musicamante

暫無
暫無

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

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