[英]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上以及可選地在其他平台上使用)使用文件系統模型,該文件系統模型將在可能的情況下通知文件系統狀態更改。
必須回答的問題:
您正在使用哪個對話框(本機或Qt)? 可以將DontUseNativeDialog
選項設置為強制執行Qt對話框。
您平台上的SNFS是否實現文件系統更改通知?
您是否驗證了文件系統更改通知是否正常工作並被Qt的QFileSystemModel
-如果是這樣,無論平台對話框是否存在,Qt文件對話框都會收到通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.