crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QFileSystemModel и сигнал о перемещении файла
dmsovetov
  опции профиля:
сообщение 4.12.2015, 23:12
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 4.12.2015
Пользователь №: 4495

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день :)

Уже второй день мучаюсь с QFileSystemModel - застрял на обработке сигналов rowsMoved/rowsAboutToBeMoved (те что описаны в QAbstractItemModel). Они почему-то не приходят. <_<

Когда я в QTreeView перекидываю файлы/папки из одного места в другое, мне приходят сигналы о том, что сначала элемент был убран из модели, а потом добавлен. Мне это, к сожалению, не подходит, потому что вместе с файлами нужно перемещать автоматически еще и прикрепленную мета-информацию.

Вот настройка моего наследника QTreeView
setModel( m_model );
setRootIndex( m_model->index( m_model->rootPath() ) );
setHeaderHidden( true );
setDragEnabled( true );
setDropIndicatorShown( true );
setDragDropOverwriteMode( true );
setSelectionMode( ExtendedSelection );
setDragDropMode( InternalMove );
setEditTriggers( EditTrigger::EditKeyPressed );
viewport()->setAcceptDrops( true );


QFileSystemModel стандартный. Заранее спасибо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 8.12.2015, 9:53
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


dmsovetov, не так давно боролся с деревьями - была подобная проблема при перетаскивании (у меня три дерева рядом расположены, между всеми можно было элементы таскать). Сигналы удаления/добавления приручить так не удалось, поэтому решил задачу немного иначе - определяю попытку тащить элемент (ловлю в объекте-фильтре обработчики QEvent::MouseButtonPress, QEvent::MouseButtonRelease,QEvent::MouseMove) , создаю поверх всех деревьев прозрачное окно, где рисую текущее положение "подсвеченных" элементов и т.д. , там же определяю, куда бросили перетаскиваемое.

Возможно, всё решается и более изящно, но я не смог иначе решить :D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 11:00