gpt4 book ai didi

c++ - QML 文件浏览器 QDirModel 与 QFileSystemModel

转载 作者:行者123 更新时间:2023-11-28 00:42:57 24 4
gpt4 key购买 nike

我正在尝试实现基于 QML 的文件浏览器。 Qt 5.1中有两种文件模型,QDirModel和QFileSystemModel,对于QDirModel文档说

This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

我的代码适用于 QDirModel 但不适用于 QFileSystemModel,这是我的代码:

主要.cpp

#include <QtWidgets/QApplication>
#include <QQuickView>
#include <QQmlContext>
#include <QFileSystemModel>
#include <QUrl>
#include <QDirModel>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QQuickView view;

QDirModel model;

view.rootContext()->setContextProperty("dirModel", &model);

view.setSource(QUrl::fromLocalFile("main.qml"));
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.show();

return a.exec();
}

这是 main.qml:

import QtQuick 2.0

Rectangle
{
width: 400;
height: 400;

ListView
{
id: view;
anchors.fill: parent;
model: VisualDataModel
{
model: dirModel;
delegate: Rectangle {
width: parent.width;
height: 40;

Text
{
text: fileName
}
}
}
}
}

此代码有效,但当我使用 QFileSystemModel 而不是 QDirModel 时,它不起作用,也就是说,它无法正确显示文件。

最佳答案

你真的应该使用 QFileSystemModel。但是如果你不知道如何使用它,更仔细地看文档,或者直接在 QML 中使用 'FolderListModel' 项,它在 'Qt.labs.folderlistmodel 2.0' 模块中,它已经被用于QML,而且相当好用。我自己有一个用它制作的文件浏览器。

关于c++ - QML 文件浏览器 QDirModel 与 QFileSystemModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com