当QFilesystemModel显示驱动器时,是否可以在QTreeView中更改文件夹颜色
Can folder color be changed in QTreeView when QFilesystemModel displays drives?
好吧,我一直在开发一个Qt应用程序,我需要使用QFilesystemModel
显示文件系统。我已经能够按预期显示它。
法典:
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);
这将显示 QTreeView 中的所有驱动器。但是我们都知道默认情况下,每个驱动器中存在的文件夹的颜色是黄色的。
这就是我想要改变的。Qt中有没有办法将文件夹的颜色更改为"蓝色???
您可以通过 qt 委托自定义您的 QTreeView。但如果只是为了一个图标,我认为你可以重新实现:
class MyQFileSystemModel : public QFileSystemModel {
public:
QVariant data( const QModelIndex& index, int role ) const {
if( role == Qt::DecorationRole ) {
return QVariant(QIcon(QPixmap("icon.png")));
}
return QFileSystemModel::data(index, role);
}
};
要了解委托,我建议您研究以下示例: 旋转框委托
编辑:您必须从QFileSystemModel重新实现方法数据,必须从QFileSystemModel继承。
然后你像以前一样做:
MyQFileSystemModel* model = new MyQFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);
我假设解决方法是使用您自己的 fileIcon。
Qt使用当前平台的默认图标。我猜你在Windows上。
这个问题提供了一些关于如何实现的线索。
(我自己刚开始学习Qt,顺便说一句!
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- QTreeView幻灯片多选后无法使用单击选择
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- 如何从SDL_Surface获取特定像素的颜色
- 在QTreeView中仅显示共享驱动器和文件夹
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 更新 QTreeView 和 QListView 中的项目
- 双击更改 mfc 中列表控件中的行的颜色
- 如何设置QTreeView的起点目录?
- 为什么不能使用 setData() 在 QTreeView 中设置单元格的背景颜色?
- QTreeView 项目悬停/基于当前颜色选择的背景颜色
- 用不同的颜色填充QTreeView中的单元格,用不同的颜色填充QDiagCrossPattern
- 当QFilesystemModel显示驱动器时,是否可以在QTreeView中更改文件夹颜色
- QTreeView 边框/框架颜色