2015-07-27 1 views
1

У меня есть столбец в моей базе данных под названием «Путь», который выглядит следующим образом:Как загрузить каталоги из базы данных в QTreeView?

c:\windows\system\ 
c:\folder2\subfolder\subsubfolder\ 
c:\folder2\subfolder2\subsubfolder\ 
c:\folder2\other\ 
d:\dir 
d:\anotherdir 
... 

Все эти каталоги различны (Unique) в таблице.

Я хочу загрузить их в QTreeView и показать их как при использовании QFileSystemModel. Это возможно? Как?

ответ

1

Несомненно. Вам нужно написать код для этого. Qt не включает такую ​​функциональность.

Если вы хотите модель быть изменяемыми (скажем, вы хотите, чтобы удалить элементы из дерева), вы можете реализовать QAbstractItemModel модели, которая оборачивает в QSqlTableModel или ее QSqlQueryModel и выставляет данные в виде дерева.

Если вы заботитесь только о статических моделях, вы можете перебирать таблицу базы данных и строить древовидную форму QStandardItemModel, а затем просматривать ее.

+0

Спасибо, я начал сразу после публикации вопроса, создающего свой собственный подкласс QStandardItemModel, который внутренне использует объект QSqlQuery (результат из каталога SELECT FROM mytable) и думал, как сделать строки String в строках QStandardItemModel Но я бы, вероятно, хотел бы, чтобы пользователь удалял элементы из дерева или даже перетаскивал их из одного каталога в другой. Вы говорите, что это невозможно, используя QStandardItemModel? –

+0

@ StephenH.Anderson Возможно, просто вам понадобится воздействовать на сигналы удаления элемента из модели, удаляя соответствующие элементы из таблицы (таблиц) базы данных. –

+0

О, хорошо, я не уверен в различиях. Первый раз, когда я реализовал свою собственную модель ... Спасибо –

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