crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> "Пропустить" события мыши
MishaUA
  опции профиля:
сообщение 21.7.2015, 8:49
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Здрвствуйте!
Допустим, есть Qwidget, на нем размещен QFrame. Как сделать, чтобы клик мыши (mousePressEvent и mouseReleaseEvent) по QFrame "пропускались" и передавались на его родительский виджет Qwidget?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Ponchikus
  опции профиля:
сообщение 21.7.2015, 17:06
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 25.6.2015
Пользователь №: 4411

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(MishaUA @ 21.7.2015, 9:49) *
Здрвствуйте!
Допустим, есть Qwidget, на нем размещен QFrame. Как сделать, чтобы клик мыши (mousePressEvent и mouseReleaseEvent) по QFrame "пропускались" и передавались на его родительский виджет Qwidget?


Привет.
Возможно я не прав, но попробуй переопределить событие мыши в QFrame и передать событие конкретному объекту.
void QFrame::mousePressEvent(QMouseEvent *e)
{
    widget->event(e);
}


Тогда в "widget" надо через bool QWidget::event(QEvent * event) принять это событие.
bool widget::event(QEvent * e)
{
if(e->type()==QEvent::MouseButtonRelease)
    {
        QMouseEvent *me=static_cast<QMouseEvent*>(e);
        if(me->button()==Qt::LeftButton)
        {
            qDebug()<<"MOUSE";
        }
    }
    return QWidget::event(e);
}


Но это не точно. Удачи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 17.11.2015, 1:53
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Оказалось, это гораздо проще:
setAttribute(Qt::WA_TransparentForMouseEvents);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.3.2021, 8:00