问题标签 [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 投票
1 回答
1056 浏览

qt - Qt 项目委托

我是 Qt 的新手,并且正在慢慢找到自己的方式。我的目标是让图标中QListViewQFileSytemModel文件名称换行,类似于在任何操作系统上发现的行为,如果名称太长,文本会被拆分。

通过浏览互联网,我相信我需要创建一个自定义类来扩展QAbstractItemDelegate以执行我的特殊绘图和文本换行。但是,我无法找到ItemDelegatestockQListView类开箱即用的默认值。

我想要默认类的原因是我可以在使用自己的渲染器时四处探索并了解更多关于 Qt 组件的生命周期的信息。我想知道是否有人知道在哪里QListView可以找到该类的默认渲染器?

0 投票
0 回答
845 浏览

qt - 如何在 QTreeView 中查找项目?

我知道QTreeWidget有查找项目的方法,但是由于我想使用 a QFileSystemModel,所以我仅限于QTreeView. 但是,我仍然希望能够从 a 返回所有项目QTreeView并将它们放入列表中。

我曾以为我可以通过并从 中获取所有索引QTreeView,但我不知道该怎么做。

也许是这样的:

但我知道这是不正确的。将项目或项目地址从 a 中获取到列表中的好方法是QTreeView什么?

0 投票
1 回答
2347 浏览

qt - 在 QFileSystemModel() 中列出文件的最佳方法?

我正在开始 Qt/pySide 编程,并试图以 QFileSystemModel 作为模型来实现一个简单的 QListView。我有这个工作,另外在模型上定义了一个名称过滤器。我想获取 QListView (或更确切地说是底层模型)中所有文件的列表。

以下代码似乎可以做到这一点,但非常难看,不可能是正确的方法。帮助!

0 投票
1 回答
9520 浏览

qt - 过滤 QFilesystemModel

我正在使用带有QListviewQFileSystemModel来显示目录中的所有文件。我想过滤该模型以显示某些类别的文件,例如:

  • 文本文件:*.txt *.csv *.tab
  • 音乐:*.mp3 *.flac *.ogg
  • 电影:*.avi *.mkv

我当前的代码是:

(...)

当目录中存在所有类型的文件时,该代码不显示任何内容。

此外,我尝试过的事情对我来说并不好(指针可能对进一步的读者有用):

  • setNameFilters :效果很好,但让我们显示所有文件(未过滤的只是灰色的)
  • 自定义排序/过滤模型示例-> 在使用 QSortFilterProxyModel 时,此示例有点过于复杂,无法仅过滤掉文件扩展名,此外它使用的正则表达式在使用许多过滤器时不是最好的方法,例如这里。
  • 我还从 qt-project 中找到了一个有趣的片段,但不知道如何为具有多个扩展名的行实现它
0 投票
1 回答
2894 浏览

c++ - Qt5 C++:从 QListView 的模型中删除项目以及如何计算项目

1. 我试图从 QListView 模型中删除几个列出的文件之一。我正在使用此代码,但它不起作用:

同样的事情是,如果我使用:

此代码有什么问题,如何从列表中删除项目?

2. QFileSystemModel仅加载所选目录中的文件。我如何计算QListView模型中的所有这些项目?

0 投票
1 回答
276 浏览

c++ - Qt5 C++:向 QFileSystemModel 添加附加信息

我想将一些额外的数据保存到 QFileSystemModel ,就像文件描述和类似的东西一样。我已经有一个输出窗口,用户可以在其中输入一些额外的、不需要的数据,但无论如何,如果用户想要添加主应用程序允许的任何其他内容,我需要实现这一点。

我是否需要继承 QFileSystemModel 并向其添加其他数据?如何在用于添加附加数据的 plainTextEditor 中修剪新行和空行?如何将 QFileSystem 的数据输出到文件中,然后再导入回来?

0 投票
1 回答
1777 浏览

c++ - QFileSystemModel 和 QTreeView - 重置视图时的奇怪行为

我在Qt的官方论坛上写了这个,但它似乎已经死了,所以我打算在这里复制粘贴。

我正在编写用于复制文件的小程序。我使用QTreeView并且继承自QFileSystemModel,因此我能够将复选框添加到QTreeView. 我也使用setNameFilters与 连接的方法QLineEdit,因此用户可以指定他想在QTreeView. 我发现了以下行为:

1)当我运行程序并输入扩展名进行过滤(不触摸任何节点QTreeView)时,一切正常,我提供的带有扩展名的文件只显示(当然还有文件夹)。当我更改扩展并刷新视图时,我的"C:/"驱动器上的所有内容都会更新,并且只显示一组新的扩展。当我展开一些我以前没有接触过的其他驱动器时,它也会正确显示文件。

2)当我运行程序并展开说我的"C:/""D:/"驱动器时,我看到所有目录和文件(预期行为)。然后我写了一些扩展,视图被刷新了。我展开"C:/"驱动器,一切正常,只显示带有我提供的扩展名的文件。然后我去"D:/"开车,这就是问题所在。它显示所有文件。它忽略了我提供的过滤器。当我打开"E:/"之前没有打开的驱动器时,文件会像在"C:/"驱动器中一样被正确过滤。

我得出的结论是,这种行为与setRootPath方法有关,因为对于我QTreeView唯一的"C:/"驱动器,过滤器工作正常。在更改过滤器之前扩展的所有其他驱动器都不起作用。那些没有扩展的工作就好了。

问题是:如何让它工作,所以在用户更改过滤器并触发 reset() 方法后,整体QTreeView被刷新,而不仅仅是根路径和未扩展的元素?也许存在一些将所有驱动器作为子驱动器的根路径,它会按预期工作?或者也许我应该在被QTreeView调用中创建一些虚拟文件夹"MyComputer"并将其设置为所有驱动器的父级?但是如何获取所有可用驱动器的列表?

我希望我写的内容对您来说很清楚,您可以帮助我完成这项工作。

编辑: 添加一些相关的代码。如果您需要更多,请询问。

0 投票
0 回答
269 浏览

qt - Qt UI 因 QFileSystemModel 性能不佳而停止

我正在使用 QFileSystemModel 在 Mac 上解析包含 20,000 多个文件和子目录的目录结构。QFileSystemModel 大约需要 8-10 秒来填充,在此期间 UI 会停止。根据 Qt 文档,文件系统解析是在单独的线程中完成的。所以我想知道我是否做错了什么来停止 UI 或者这是一个已知问题。请看下面的堆栈跟踪,这是 QFileSystemModel 遍历目录结构和 UI 停止时主线程的快照。Qt 库不是调试库,我只能管理没有任何调试符号的堆栈跟踪,但希望这可能是找出这里可能出了什么问题的线索。

0 投票
1 回答
1826 浏览

qt - 添加/删除驱动器时如何更新 QFileSystemModel?

我正在使用 QFileSystemModel 和 QTreeView 来显示根目录的内容,现在想在添加或删除驱动器时刷新 qtreeview。

尝试使用刷新按钮通过插槽实现此目的,删除模型并将其再次设置为 QTreeView。但这里的问题是,在第二次将模型设置为视图后,它没有将列宽扩展到其内容。

有没有最好的解决方案来实现这一点。这是一个代码位...

0 投票
1 回答
206 浏览

qt - 如何使用 qfilesystem 模型标题文本避免 qtreeview 中的前导空格?

我正在使用带有 QTreeView 的 QFileSystem 模型,并且可以通过像这样对 QFileSystem 模型进行子类化来更改文本...

但我无法删除标题文本中的前导空格,任何人都可以建议如何做到这一点。

在此处输入图像描述