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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QEvent  (Прочитано 3498 раз)
BuRn
Гость
« : Декабрь 21, 2011, 08:54 »

Подскажите как обработать комбинацию press и move одновременно , хочу что бы можно было нажать на мышь и тащить объект в свое место ?
Записан
BRE
Гость
« Ответ #1 : Декабрь 21, 2011, 09:08 »

В обработчике press выставляешь флажок, который проверяешь в обработчике move и тащишь когда он установлен. В release флажок снимаешь.
Записан
BuRn
Гость
« Ответ #2 : Декабрь 21, 2011, 09:27 »

была мысль с флажком , но думал может есть другие варианты решения ?
Записан
Syveren
Гость
« Ответ #3 : Декабрь 21, 2011, 11:48 »

Код:
void QWidget::mouseMoveEvent ( QMouseEvent * event )
{
    if(event->buttons()==Qt::LeftButton) // нажата левая кнопка
    ....
}

Записан
popper
Гость
« Ответ #4 : Декабрь 21, 2011, 12:05 »

Только заменить
Код:
    ...
    if(event->buttons()==Qt::LeftButton) // нажата левая кнопка
    ....

на
Код:
   if( event->buttons().testFlag(Qt::LeftButton) )

Но я также думаю, что лучше делать через флаг, который устанавливается в mousePressEvent и снимается в mouseReleaseEvent
Записан
KrupaKarlo
Гость
« Ответ #5 : Декабрь 22, 2011, 13:19 »

Если тебе надо перетащить объект в другое место, то для этого создана система перетаскивания. Набери в справке Drag and Drop. Там целый раздел об этом.

Если нет, то флаги что ж делать то)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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