QML ベースのファイル ブラウザを実装しようとしています。Qt 5.1 には、QDirModel と QFileSystemModel の 2 つのファイル モデルがあります。
このクラスは廃止されました。古いソース コードの動作を維持するために提供されます。新しいコードでは使用しないことを強くお勧めします。
私のコードは QDirModel では機能しますが、QFileSystemModel では機能しません。私のコードは次のとおりです。
main.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
}
}
}
}
}
このコードは機能しますが、QDirModel の代わりに QFileSystemModel を使用すると機能しません。つまり、ファイルが正しく表示されません。