crossplatform.ru

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


  Ответ в QListview & DropEvent
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
enslaver Дата 26.3.2010, 18:53
  Спасибо, это помогло использовал 2 вариант.

ListView->viewport()->mapFrom(this,event->pos())

Работает именно так как должно, огромное спасибо :)))) теперь могу хоть дальше работу продолжить....
Оста лось только меню реализовать (копировать или переместить) и контекстное меню, а то тоже немного не понял как оно риализовывается...
MoPDoBoPoT Дата 25.3.2010, 20:57
  Ты QDropEvent обрабатываешь в главном окошке, из-за этого, по-моему, координаты, получаемые из event->pos(), являются относительными к главному окну. Надо сделать что-то вроде этого:
ListView->indexAt(ListView->mapFrom(this, event->pos()));

Если координаты все-таки глобальные, то использовать mapFromGlobal() (из доки что-то не ясно).
Еще, возможно, надо будет приводить к коодинатам вьюпорта:
ListView->viewport()->mapFrom(...)
enslaver Дата 25.3.2010, 20:47
  да (x1.5,y1.5)
координаты локальные для QListView.
А насчет примера знаю что нету, и как с подобным быть не знаю...
неужели никто не пытался написать свой файловый браузер?
Litkevich Yuriy Дата 25.3.2010, 17:36
 
Цитата(enslaver @ 25.3.2010, 20:00) *
// возвращает QPoin где остановился курсор
...
то бишь точку в которой остановился курсор.
А в чьих координатах? Виджета (QListview), его области просмотра или вовсе в глобальных. Я оперативно в доке не увидел подобной оговорки.

Цитата(enslaver @ 25.3.2010, 20:00) *
(x0.5,y0.5)
не понял этой записи, может (1.5x, 1.5y) ?
enslaver Дата 25.3.2010, 17:00
  Я начинающий Чайник :) на QT.
Делать вот мне нечего пишу Файловый браузер, за основу взял Долфин.
Столкнулся с проблемой.
перетаскиваю объект(любой) хоть на папку хоть на файл, получаю
event->pos(); // возвращает QPoin где остановился курсор

то бишь точку в которой остановился курсор.
!!!И тут вот она и проблема!!!!
пытаюсь получить имя объекта на котором остановился курсор
ListView->indexAt(event->pos()); // возвращает QModelIndex объекта с заданными координатами

но он понимает только верхнюю левую точку области выделения объекта, а внутри области он их не видит, и следовательно ничего не возвращает.
для понимания проблемы привету вам модель проблемы:

(x1,y1)----------(x2,y1)
|****************|
|****************|
|****(x0.5,y0.5)****|
|****************|
|****************|
(x1,y2)--------------(x2,y2)

event->pos();

координаты (x0.5,y0.5);

А функция ниже может обрабатывать только точки с координатами(x1,y1);
ListView->indexAt();


нужно что бы при любых (x0.5,y0.5) он возвращал нужное значение(x1,y1);

сурц всего этого дела прикреплю.
Прикрепленный файл  file_comander.tar.gz ( 5.33 килобайт ) Кол-во скачиваний: 415


Нужно реализовать перемещение в папку. А вот как это сделать толком так нигде и не видел, может кто поможет, а то уже не первый день сижу голову ломаю....
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.4.2024, 15:18