crossplatform.ru

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

> QFileSystemModel+QListView, не работает Drop
bn11
  опции профиля:
сообщение 22.1.2013, 16:11
Сообщение #1


Новичок


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

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




Репутация:   0  


Доброго времени суток!
Столкнулся со следующей проблемой: невозможно отпустить элемент(папку или файл) QFileSystemModel
на QListView. Чтобы было ясно о чем я приведу код:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QFileSystemModel *model;
QTreeView *tree;
QListView *mylist;

model=new QFileSystemModel();
tree=new QTreeView();

model->setRootPath("/");

tree->setModel(model);
tree->show();
tree->setDragEnabled(true);

mylist=new QListView();
mylist->setAcceptDrops(true);
mylist->show();

//w.show();
return a.exec();
}


Пробуем перетащить файл или папку на листвью - не получается, ОС выставляет значок запрета.
С чем это связано и как это обойти?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
bn11
  опции профиля:
сообщение 23.1.2013, 11:43
Сообщение #2


Новичок


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

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




Репутация:   0  


Задача решена, нужно было переопределить dragMoveEvent у QListView примерно так
void FileList::dragMoveEvent(QDragMoveEvent *e)
{
e->acceptProposedAction();
}

обработчик по умолчанию запрещает дроп. После переопределения метода вызывается dropEvent, в него добавляем код для того чтобы отобразить в листе новый элемент.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 2.12.2024, 1:45