繁体   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