问题标签 [qfilesystemmodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3283 浏览

qt - 如何使用 QTreeView 和 QFileSystemModel 仅显示具有特定文件的文件夹?

我在使用 QTreeView 和 QFileSystemModel 过滤特定文件夹时遇到问题。

我将我的根 QFileSystemModel 设置为一个特定的文件夹 - 这有效。但我只想显示包含.jpg文件的文件夹。这可能吗?

我过滤.jpg文件并且有效,但我的 QTreeView 显示所有文件夹,即使是那些没有.jpg文件的文件夹。因此,如果用户尝试打开某个没有.jpg文件的文件夹,则不会发生任何事情。

如何隐藏这些文件夹?

注意:下面有部分代码。

0 投票
1 回答
1764 浏览

qt - 使用 QFileDialog 自定义 QFIleSystemModel

我目前正在实现一个项目系统,该系统使用存档而不是目录来保存子文件。我保留了一个保存项目虚拟文件系统的数据结构,并根据需要将其写出来。

我现在正在尝试为这个虚拟文件系统实现图形前端,我想使用 QFileDialog 来“保存”到虚拟文件系统。

我做了一些研究,看来我需要继承 QFileSystemModel 或实现代理模型。后者似乎更适合修改现有的排序和过滤模型,而我想完全替换它,所以我认为这不是一个好的选择。我翻阅了 QFileSystemModel 的源代码,它似乎也很难重新利用。我是 Qt 模型/视图新手,所以我可能会弄错。

将 QFileDialog 重新用于虚拟文件系统的正确方法是什么?我认为这至少会有所记录,因为我可以想到几种可能有用的场景。

如果有人能指出我正确的方向,我将非常感激。

0 投票
0 回答
802 浏览

python - QFileSystemModel 未检测到 Python 生成的文件更改

使用 PyQt 和 Python 我遇到了以下问题:

  1. 设置一个 QFileSystemModel,调用 setRootPath() 并连接到 dataChanged 信号。
  2. 从 Python 打开一个新文件并在其中写入一些文本。然后关闭它。
  3. 以追加模式重新打开文件并在其中写入更多文本。然后关闭它。
  4. 在外部编辑器中打开文件。写点东西。节省。多写点东西。节省。

如果您执行 (3),则不会发出 dataChanged 信号。但是,如果您执行 (4),则会发出 dataChanged 信号。

有什么线索吗?下面包含一个重现该问题的代码片段。

此致,

麦兹

以下是一些更一般的观察:

基本问题是 QFileSystemModel 显然没有以正确的方式监视文件更改:

案例 1(Ubuntu):

1) 在后台运行脚本作为 'python fsm.py &' 2) 在启动脚本的同一目录中启动 Python 提示符 3) 键入:

当调用 open() 时,QFileSystemModel 检测到新文件。但是,没有检测到由 f.write() 和 f.close() 引起的文件修改。

案例 2(Ubuntu):

1)当脚本'fsm.py'仍在运行时,使用一些外部编辑器(gedit,emacs等)打开一个新文件2)写一些东西并保存

在这种情况下,新文件和修改都会被检测到。这是我不明白的第一件事。为什么没有检测到 Python IO 但来自编辑器的 IO 是?

案例 3(Ubuntu):

使用 Ubuntu:我启动 Nautilus 文件浏览器并重复案例 1-2 中的步骤 1-3。然后 nautilus 检测到新文件和修改。所以那里 Python 生成的 IO 被监控,但显然是使用 GNOME 文件监控系统。

案例 1(Windows 7):

相同的行为。

案例 2(Windows 7):

如果使用记事本或写字板,则不会检测到文件修改。如果使用 GVim 7.3,则会检测到文件修改。

案例 3(Windows 7):

启动本机 Windows 7 文件浏览器,检测到案例 1-2 中的所有模块。

你能理解这个吗?

0 投票
2 回答
3445 浏览

qt - QFileSystemModel 排序 DirsFirst

您如何使用 QDir::DirsFirst 对 QFileSystemModel 进行排序,就像在 QDirModel 中一样?QFileSystemModel 没有setSorting方法。

0 投票
4 回答
1960 浏览

qt - 如何在 QFileSystemModel 上隐藏文件扩展名

我已将 QFileSystemModel 绑定到 QTreeView。QFileSystemModel 已将 readOnly 设置为 false,因此用户可以重命名文件...但是我不希望用户意外重命名文件并忘记其扩展名,因为这将导致其从 QTreeView 中排除,因为我正在过滤文件类型...

如何隐藏保持重命名功能的文件扩展名?

谢谢

0 投票
2 回答
768 浏览

qt - 如何排除 QFileSystemModel 中的目录?

我使用此代码。

我不明白如何排除某些文件夹。

0 投票
1 回答
373 浏览

c++ - QTreeView - 删除某些元素的可扩展外观

我想删除 QTreeView 中某些元素的可扩展属性(填充从 QFileSystemModel 继承的模型)。我可以在它们展开后轻松折叠这些元素,但它们在 QTreeView 中仍然可见为可展开的。我怎样才能将它们显示为不可扩展的?

0 投票
2 回答
9875 浏览

c++ - QFileSystemModel setRootPath

我正在尝试创建一个显示文件夹内容的 Qt 应用程序(Mac OS 中的“用户”文件夹)。这是代码:

我也尝试使用此代码

当我运行应用程序时,它不显示“/Users”文件夹的内容,而是显示根驱动器(注意:不是驱动器的内容)。该文件夹确实存在,我也尝试使用其他文件夹。

0 投票
2 回答
3400 浏览

python - 如何在 PyQt 中禁用 QTreeView 和 QFileSystemModel 上的双击文件重命名行为?

简单的问题。我想使用 F2 或 Enter 进行重命名,然后双击打开文件。

使用self.treeView.doubleClicked.connect(self.doubleclick)I can do things 在我的self.doubleClick方法中,但仍然会触发重命名。

该模型不是只读的 ( model.setReadOnly(False))。

0 投票
1 回答
2168 浏览

c++ - Qt代理模型使用示例

我正在使用 Qt 4QFileSystemModelQTreeView. 我正在编写一个类似于文件管理器的 Windows 资源管理器,并希望创建一个更类似于 Windows 的树,其中树包含一些快捷路径,如桌面、我的文档。我唯一想要的就是让一棵树看起来像这样:

  • 我的电脑
    • 桌面
    • 我的文件
    • C:\
    • D:\
    • ...

听说可以用QAbstractProxyModel. 有没有人使用QAbstractProxyModel并让它工作?如果是,请提供任何适当的示例。提前致谢。

这个问题与如何在 QFileSystemModel 中添加自定义行相同?