2015-03-16 3 views
2

Мне нужно создать элементы на основе файловой системы в каталоге. обязательно, что я должен использовать QGraphicsView, а не (QTreeView/QListView), так как я могу удержать QModel для графического экрана. может ли кто-нибудь помочь мне предложить или указать пример того, как я могу загрузить QFileModel с помощью QGraphicsScene.QAbstractItemModel в QGraphicsView

ответ

0

Вам не нужно QFileModel для него , Используйте QDir::entryInfoList для получения списка файлов и QFileSystemWatcher для отслеживания изменений файловой системы.

+0

это очень хорошая идея, но как я могу постоянно переименовывать, удалять и копировать/перемещаться с помощью QDir :: entryInfoList, потому что я должен обрабатывать практически все функции в файловой системе через мой графический просмотр. – Wagmare

+0

Вам не нужно использовать 'QDir :: entryInfoList 'для переименования, удаления или удаления файлов. Для этого вам необходимо использовать соответствующий API: 'QDir :: rename',' QDir :: rmpath' и другие. –

2

Существует только один простой способ сделать это, добавить представление с моделью в сцену. Да, это все еще QTreeView/QListView, но вы получите все преимущества QGraphicsView и QGraphicsScene, таких как вращение, взаимодействие и т.д.

//fill the model and set model to view 
ui->tableView->setParent(0); 
QGraphicsProxyWidget * proxyView = ui->graphicsView->scene()->addWidget(ui->tableView); 
proxyView->setRotation(45); 

Результат:

enter image description here

+0

Спасибо за ответ te .. фактически я должен показать, что элемент полностью отличается от имени файла внутри структуры папок с элементами (не одним элементом, а группой элементов), а не на таблице или дереве – Wagmare

Смежные вопросы