我一直在开发一个Qt应用程序,我需要使用QFilesystemModel
显示Filesystem。我已经能够按预期显示它了。
代码:
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);
这将显示QTreeView中的所有驱动器。但我们都知道默认情况下,每个驱动器中的文件夹颜色为黄色。
这就是我想要改变的。在Qt中有没有办法,可以将文件夹的颜色改为“蓝色” ???
答案 0 :(得分:1)
您可以通过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);
}
};
要了解委托,我建议你研究一下这些例子:Spin box delegate
编辑:您必须从QFileSystemModel重新实现方法数据,您必须从QFileSystemModel继承。
然后你像以前一样:
MyQFileSystemModel* model = new MyQFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);
答案 1 :(得分:0)