Russian Qt Forum

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



Название: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 11:07
Всем привет. Сразу хочу поросить не ссылать меня на другие темы... просмотрел все... Вот вопрос. Мне нужно из QTreeView в QTreeWidget таскать разделы. Я облазил весь инет >:(... ничего толкого не нашел. На форуме один парень говорил, что у него примерчик есть, но я ему и письмо писал, и в посте том отписался - тишина одним словом :-\. Буду очень признателен если кто-нибудь поделиться данным примером. P.S. в драг анд дропе ноль, формально понимаю что это и как выглядит, но никогда не щупал это.  :D Qt 4.3.2


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: ритт от Октябрь 19, 2008, 12:03
так-с...где-то на http://qtfaq.ru/ парень выкладывал сниппет - там именно то, что тебе нужно. НО...код в том сниппете содержал множество неточностей и утечек - некоторые я исправил, но наверняка не все (код правил прямо на странице - без компиляции) - поэтому внимательно пройдись по коду...желательно валграйндом.

упд. вот и ссылочка - http://qtfaq.ru/tiki-index.php?page=DragAndDrop+in+QTreeWidget - но я не знаю с моими это правками или нет, т.к. раньше на сайте было всё иначе - возможно, сменили движок и перезалили статьи...


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 12:16
Спасибо. Сейчас разбираюсь сижу


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 13:52
Ошибка  1(На один и тоже метод одна и таже ошибка раз 7)
d:\Development\Form\Src\basetree.h(34): error C3209: 'сheckFormat' : Unicode identifiers are not yet supported

Ошибка 2
d:\Development\Form\Src\basetree.cpp(80): error C2601: 'baseTree::GetFormat' : local function definitions are illegal

Ошибка 3
d:\Development\Form\Src\basetree.cpp(58): error C2601: 'baseTree::startDrag' : local function definitions are illegal



Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 13:57
Ошибка  1(На один и тоже метод одна и таже ошибка раз 7)
d:\Development\Form\Src\basetree.h(34): error C3209: 'сheckFormat' : Unicode identifiers are not yet supported

С этой штукой разобрался, там кодировки погнали, перебил значения все норм. Что делать с теми двуми ума не приложу...


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: ритт от Октябрь 19, 2008, 14:05
вообще, реализация там ужасная :)
лучше просто посмотри на тот сниппет в качестве примера и сделай по-своему :)
фактически тебе нужен вот этот кусок кода:
Код:
    QMimeData *mimeData = new QMimeData; 
    mimeData->setData(signature, sendData);
    QDrag *drag = new QDrag(this);
    drag->setMimeData(mimeData);
    drag->setHotSpot(QPoint(0,0));
    drag->setPixmap(pmIcon);
    drag->exec(Qt::MoveAction);
    delete drag;
и документация по QDrag - там всё предельно ясно...


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 14:07
мама, мне страшно  ??? . Как мне всегда страшно разбираться в чем-то новом. Чувствую кофе будет постоянным на сегодня(


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: ритт от Октябрь 19, 2008, 14:14
Как мне всегда страшно разбираться в чем-то новом
это ненормально для программиста :)

там правда ничего сложного! прочти доку по классу, посмотри мой патч к QTabBar'у (в доп.компонентах) - и напиши хороший тривью с тяни-бросаем :)
а прерогативу копипастить код оставь мелкософту :Р


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 14:24
А как тут будет связь происходить. Мне нужно перетаскивать элемент из QTreeView в QTreeWidget. Мне методы расписать на два класса надо (одни и теже) или часть методов в QTreeView ,а  другая в QTreeWidget?


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: ритт от Октябрь 19, 2008, 14:36
придётся перегрузить и тривью, и тривиджет...


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 14:42
Одним и тем же?


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 19, 2008, 15:06
КОроче я нифига тут не понимаю!!!  >:( Я все исходники в examples/draganddrop пересмотрел!!! Беру пробую.. черте что.. но уже прогресс что хоть значек перетаскивания появлися... Но он такой как знак блокировки )!!!! Кружок перечеркнутый. ААА!!! Мой моск!!!



А иконка, которую я назначаю для перетаскивания видна только за пределами форма, т.е. как мышку за форму выносишь так и значек появляется!


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: pupapum от Октябрь 20, 2008, 08:24
Сори, что поорал тут. Читаю ассистант, все понимаю, думаю скоро напиши. Пост не удаляйте плиз. Я если напишу =) потом сюда все исходники выложу для других. А вообще я  и сам думаю тут вопросики еще позадовать =)


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: ритт от Октябрь 20, 2008, 08:37
:)


Название: Re: Drag&Drop QTreeWidget QTreeView
Отправлено: Danila_Bagrofff от Апрель 07, 2009, 07:38
У меня похожая проблема с QTableWidget. Помогите.