簡體   English   中英

QFileDialog-文件刪除通知

[英]QFileDialog - File deletion notification

我正在嘗試修改庫存QFileDialog以更好地支持SNFS文件系統。 目前,刪除文件后不會更新。 因此,如果用戶刪除文件,該文件仍顯示在對話框中。

因此,我需要的是用戶從對話框中刪除文件后立即得到通知的某種方法,或者一種刪除默認快捷方式以實現我自己的方法。

到目前為止,我已經嘗試過:

為DEL鍵安裝一個eventFilter

該事件似乎在進入我的過濾器之前被QFileDialog停止了。

添加我自己的快捷方式

結果是:

QAction::eventFilter: Ambiguous shortcut overload: Del

刪除設置的快捷方式

我在對話框上調用以下函數,以遞歸方式刪除所有設置的快捷鍵和操作:

def to_children(self, parent):
    for child in parent.children():
        if hasattr(child, 'removeAction'):
            for a in child.actions():
                child.removeAction(a)
        if hasattr(child, 'releaseShortcut'):
            for i in range(100):
                self.releaseShortcut(i)
        self.to_children(child)

但是,快捷方式仍然有效。

刪除文件的方法有很多-掛鈎快捷方式對您沒有幫助。

文件對話框有兩種:本機對話框和Qt對話框。 本機對話框跟蹤Windows和OS X上的文件系統狀態,可能會因平台特定而稍有延遲,並以相同的程度出現在所有應用程序中。 在這些平台上,您無需執行任何其他操作。 Qt對話框(始終在Windows上以及可選地在其他平台上使用)使用文件系統模型,該文件系統模型將在可能的情況下通知文件系統狀態更改。

必須回答的問題:

  1. 您正在使用哪個對話框(本機或Qt)? 可以將DontUseNativeDialog選項設置為強制執行Qt對話框。

  2. 您平台上的SNFS是否實現文件系統更改通知?

  3. 您是否驗證了文件系統更改通知是否正常工作並被Qt的QFileSystemModel -如果是這樣,無論平台對話框是否存在,Qt文件對話框都會收到通知。

暫無
暫無

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

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