【发布时间】:2015-08-04 21:29:51
【问题描述】:
我正在尝试修改库存 QFileDialog 以更好地支持SNFS 文件系统。目前它在删除文件后不会更新。因此,如果用户删除了一个文件,该文件仍会显示在 Dialog 中。
所以我需要的是在用户从对话框中删除文件后获得通知的方法,或者删除默认快捷方式以便我可以实现自己的方法。
到目前为止我已经尝试过:
为 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 版本的文件对话框的删除功能感兴趣,而其他地方的删除并不重要。
-
很可能,库存文件对话框使用自己的快捷操作,它们可能不是对话框的子项。
-
我也删除了这些,但没有帮助。
标签: qt qfiledialog