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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Mouse release event странно работает (QWT+VmWare)  (Прочитано 2257 раз)
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« : Июль 19, 2018, 11:22 »

Если быстро вывести мышь с зажатой кнопкой за пределы окна и отпустить кнопку, то не приходит MouseRelease, а только MouseMove. Теперь если немного сдвинуть мышь то доходит MouseButtonRelease. Лучше всего это проявляется если отпустить кнопку на краю экрана, но иногда бывает и в середине экрана. Возникает только при работе под виртуальной машиной.
Программа - график на Qwt
eventFilter поставлен на canvas:
Код
C++ (Qt)
this->canvas()->installEventFilter(this);
Код
C++ (Qt)
bool Graph::eventFilter(QObject *obj, QEvent *e)
{
QMouseEvent *me = dynamic_cast<QMouseEvent *>(e);
if(!me)return QObject::eventFilter(obj, e);
if (e->type() == QEvent::MouseButtonPress)
{
if(me->button()==Qt::LeftButton)
{
OutputDebugString(L"MOUSE PRESS\n");
return true;
}
else return QObject::eventFilter(obj, e);
 
}
else if(e->type() == QEvent::MouseButtonRelease)
{
 
if(me->button() == Qt::LeftButton)
{
OutputDebugString(L"MOUSE RELEASE\n");
return true;
}
else return QObject::eventFilter(obj, e);
 
}
else if(e->type() == QEvent::MouseMove)
{
OutputDebugString(L"mouse move\n");
return true;
}
else
{
// standard event processing
return QObject::eventFilter(obj, e);
}
}


Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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