Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: pupapum от Февраля 19, 2008, 11:49



Название: QDirModel and QTreeView
Отправлено: pupapum от Февраля 19, 2008, 11:49
Добрый день. Беру пример из хелпа, который осуществляет отображение моего компьютера в дереве.

#include <QApplication>
#include <QDirModel>
#include <QTreeView>

int main(int argc, char **argv)
{
   QApplication app(argc,argv);
   QDirModel model;
   QTreeView tree;
   tree.setModel(&model);
   tree.show();
   return app.exec();
}

Все хорошо работает. Далее хочу назначить фильтер для модели. Пишу: model.setFilter(QDir::Dirs);
Происходит чудо, мое приложение работает всоответствии с моим желанием, но появляются какие-то каталоги, причем в каждом из каталогов, с именем точка и две точки. Как избавиться от этого? Спасибо за внимание.


Название: Re: QDirModel and QTreeView
Отправлено: Mikhail от Февраля 19, 2008, 12:15
Добрый день. Беру пример из хелпа, который осуществляет отображение моего компьютера в дереве.

#include <QApplication>
#include <QDirModel>
#include <QTreeView>

int main(int argc, char **argv)
{
   QApplication app(argc,argv);
   QDirModel model;
   QTreeView tree;
   tree.setModel(&model);
   tree.show();
   return app.exec();
}

Все хорошо работает. Далее хочу назначить фильтер для модели. Пишу: model.setFilter(QDir::Dirs);
Происходит чудо, мое приложение работает всоответствии с моим желанием, но появляются какие-то каталоги, причем в каждом из каталогов, с именем точка и две точки. Как избавиться от этого? Спасибо за внимание.


Точа и две точки это собственно свой каталог и каталог на ступень выше.
Используй
model.setFilter( QDir::Dirs | QDir::NoDotAndDotDot );


и читай ассистент. Там все ответы.


Название: Re: QDirModel and QTreeView
Отправлено: Dodge от Февраля 19, 2008, 15:49
Это так, для справки.

Для расширения возможностей фильтрации, можно использовать QSortProxyFilterModel.

Код:
MyModel * model = new MyModel;
QSortProxyFilterModel * filtermodel = new QSortProxyFilterModel;
QTableView * view = new QTableView;
filtermodel->setSourceModel( model );
view->setModel( filtermodel );

 ;D


Название: Re: QDirModel and QTreeView
Отправлено: pupapum от Февраля 19, 2008, 16:39
А как ему объяснить, что помимо папок еще html странички отобразить в дереве?


Название: Re: QDirModel and QTreeView
Отправлено: Mikhail от Февраля 19, 2008, 17:46
А как ему объяснить, что помимо папок еще html странички отобразить в дереве?

Смотри в сторону setNameFilters