- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有没有办法在 QFileSystemModel (c++) 中更新文件的权限?在允许用户使用 qtreeview 重命名模型中列出的文件之前,我确保该文件已从源代码管理中 checkout 。此时文件不再是只读的,但模型仍然认为它是只读的。如何在不丢失树的展开/折叠状态的情况下强制模型更新文件的权限?
谢谢!
更新: checkout 文件后,该文件已被标记为可写。尽管如此,模型仍然没有意识到这一变化。
QFile file(path.c_str());
QFileDevice::Permissions perms = file.permissions();
if (perms & QFile::WriteUser)
{
// Is already true
}
为了确定,我继续使用
file.setPermissions(file.permissions() | QFile::WriteUser);
没有运气更改模型中为该文件报告的权限。
更新:
int perms = fsModel->data(index, QFileSystemModel::Roles::FilePermissions).value<int>();
if (perms & QFile::WriteUser)
{
int i = 0;
}
注意:上述权限永远不会设置 QFile::WriteUser 标志,除非文件在创建模型之前是可写的。
最佳答案
setRootPath() 也是解决这个问题的关键。看来你必须调用它两次才能让它更新只读权限。当我更改我的选择代码以调用时,我偶然发现了这个:
m_pFileModel->setRootPath("");
m_pFileModel->setRootPath(path.c_str());
每次选择一个项目。然后,当我双击一个项目时,我看到图标变为已 checkout 。当然它没有立即让我重命名它,我不得不再次双击它,但它确实有效。
我的过程:
连接到 OnBeginEdit() 信号并 check out 文件/更改权限
当一个项目被选中时:
m_pFileModel->setRootPath("");
m_pFileModel->setRootPath(path.c_str());
内部 OnBeginEdit()
如果您在选择项目时没有设置当前文件夹的路径,请执行以下两次
m_pFileModel->setRootPath("");
m_pFileModel->setRootPath(path.c_str());
请记住,您必须双击两次或按两次 F2 - 一次 check out ,第二次实际更改文件。
关于c++ - 如何更新 QFileSystemModel 中的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849305/
我正在寻找的几乎与 QFileSystemModel::setNameFilters() 相反。我想设置过滤器来捕获我不想显示的内容,但让其他所有内容通过。我看不出有什么方法可以遍历和隐藏某些文件,因
我可以扩展 QFileSystemModel 并添加带有文本/图标的新列吗? 问候 最佳答案 我将从子类化模型开始,提供额外的列并向其提供数据。 所以至少我会在这两种情况下重新实现 columnCou
我正在使用带有 QListview 的 QFileSystemModel 来显示目录中的所有文件。我想过滤该模型以显示某些类别的文件,例如: 文本文件:*.txt *.csv *.tab 音乐:*.m
我可以扩展 QFileSystemModel 并添加带有文本/图标的新列吗? 问候 最佳答案 我将从子类化模型开始,提供额外的列并向其提供数据。 所以至少我会在这两种情况下重新实现 columnCou
我正在使用以下过滤器设置我的 QFileSystemModel: QDir::Filters( Dirs|AllDirs|Files|Drives|NoDotAndDotDot|AllEntries
我正在尝试创建一个文件资源管理器,您可以在其中查找文件。找到后,用户应该能够选择他要上传的文件。因此我需要所选文件的路径。 这是我当前的代码: import sys from PyQt4.QtGui
在我的项目中,我有一个 QTreeView 显示我的驱动器上的一个位置。我需要将文件的所有图标更改为自定义图标,但不要管文件夹。 我重新实现了 QFileSystemModel,并且能够更改所有图标。
我正在尝试创建一个显示文件夹内容的 Qt 应用程序(在 Mac OS 中为“Users”文件夹)。这是代码: QFileSystemModel *dirModel = new QFileSystemM
如何像在 QDirModel 中那样使用 QDir::DirsFirst 对 QFileSystemModel 进行排序?QFileSystemModel 没有setSorting 方法。 最佳答案
所以我有一个 TreeView ,如下所示; #QTreeView widget #Shows files in set directory self.treeView = Q
我正在开始 Qt/pySide 编程,并试图实现一个简单的 QListView,以 QFileSystemModel 作为模型。我有这个工作,另外在模型上定义了一个名称过滤器。我想获得 QListVi
我正在尝试使用 QFileSystemModel 和 QTableView 制作一个小文件浏览器。 我想知道是否可以在“修改日期”列中突出显示具有相同值的行,例如,如果我今天修改了两个或多个文件,行以
是否可以使用 QFileSystemModel只列出一个目录内容而不是我计算机中的所有驱动器(在 Windows 中)? 最佳答案 这将是您的 View 的功能,而不是您的模型: http://doc
我正在 qt 中为一些自定义设计文件制作一个文件浏览器。我想将它们的预览加载为缩略图,因此我使用 QIconProvider 将图标返回到我的 QFileSystemModel。 问题是创建 QIco
您好,我已经编写了这段基本代码,试图填充 /Users/ 目录下的文件夹,但我不知道我错过了什么,它没有填充。 import sys from PyQt4 import QtGui from PyQt
首先,这个问题与另一个问题类似QFileSystemModel not updating when files change与本例的主要区别是,我不想每次更新我的文件之一时都替换整个模型。 在现实世界
通过环顾四周,我发现 QFileSysetmModel 中的 QFileIconProvider 会大大减慢速度。在我的特殊情况下,我根本不需要它,但我不知道如何轻松地禁用/删除它而不导致崩溃。这是我
我使用 QFileSystemModel 通过 QTreView 表示文件结构。一切正常,但我需要在树的某个级别添加额外的行。例如现在是: -根 --row1 --row2 --row3 所有这些行从
我遇到 QFileSystemModel 无法显示文件更改的问题。当文件第一次创建时,它会立即显示出来。但是当文件本身发生变化时,大小和时间戳不会更新。我已经多次尝试强制模型更新,但没有真正成功。我所
我有一个 QFileSystemModel 用作 QTreeView 中的模型。这个工作正常,现在我有一些目录的名称。我想将其隐藏在 QTreeview 中。 QString strCompleteD
我是一名优秀的程序员,十分优秀!