Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QFileSystemModel не удаётся извлечь информацию


Автор: hexzo 1.2.2011, 16:56
Как извлекать информацию из модели файловой системы описано в документации, в разделе "Model/View programming", в подразделе "Using model indexes".
Но оно не работает.  smile Что не так?

Код

#include<QtGui>

int main(int argc, char ** argv) {
    QApplication app(argc, argv);
    QFileSystemModel *fsmodel = new QFileSystemModel;
    fsmodel->setRootPath("");
    QModelIndex parentindex = fsmodel->index("C:\\");    //здесь оказывается корректный индекс
    QModelIndex tempindex = fsmodel->index(1,0, parentindex); // здесь оказывается непонятно что
    QString text = fsmodel->data(tempindex, Qt::DisplayRole).toString();
    QTextEdit *infopanel = new QTextEdit;
    infopanel->setText(text);
    infopanel->show();    
    return app.exec();
}

Автор: bsa 1.2.2011, 18:06
hexzo, модель заполняется в отдельном потоке. Поэтому, возможно, к тому моменту когда ты пытаешься получить индекс данных еще не достаточно. влепи задержку для начала и посмотри, что изменится.

Автор: hexzo 2.2.2011, 14:27
Точно, спасибо. Модель попросту не успевала загрузиться.

О конце загрузки можно узнать по сигналу directoryLoaded(QString)
А вот как заставить модель загрузить какую-либо директорию, при условии, что директория не связана ни с каким представлением?

Автор: hexzo 3.2.2011, 09:25
Это делает метод setRootPath().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)