Russian Qt Forum
Ноябрь 26, 2024, 07:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: DnD курсор  (Прочитано 2159 раз)
jurtal
Гость
« : Август 04, 2011, 12:34 »

Здравствуйте!
Есть виджет на который можно дропать. Соответственно когда на него начинаем "затаскивать" что-либо, то курсор меняется на крестик - разрешающий дропать. Вопрос в том, можно ли отображать курсор разрешающий дропать в определенной части этого виджета (известны координаты), а в остальных местах показывать Qt::ForbiddenCursor?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Август 04, 2011, 12:39 »

Код
C++ (Qt)
void QWidget::dragMoveEvent ( QDragMoveEvent * event ) [virtual protected]
void QDragMoveEvent::accept ( const QRect & rectangle )
 
Записан

Qt 5.11/4.8.7 (X11/Win)
jurtal
Гость
« Ответ #2 : Август 04, 2011, 13:06 »

Поробовал сделать так:
Код
C++ (Qt)
void Widget::dragMoveEvent (QDragMoveEvent * event)
{
   QRect rect(50,50,50,50);
   event->accept(rect);
}
 
void Widget::dragEnterEvent(QDragEnterEvent* event)
{
   event->accept();
}
 
Но сразу при затаскивании на виджет курсор разрешает дропать, а не в заданной области...
« Последнее редактирование: Август 04, 2011, 13:50 от Пантер » Записан
jurtal
Гость
« Ответ #3 : Август 04, 2011, 13:23 »

Сделал так...
Код
C++ (Qt)
void EditorWidget::dragMoveEvent(QDragMoveEvent *event)
{
QRect rect(100,50,100,50);
 
    if ( event->answerRect().intersects(rect))
 
        event->acceptProposedAction();
else
event->ignore();
}
 
Thanks to GreatSnake...
« Последнее редактирование: Август 04, 2011, 13:50 от Пантер » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.265 секунд. Запросов: 23.