0

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 を使用すると機能しません。つまり、ファイルが正しく表示されません。

4

1 に答える 1