Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > как узнать отправителя MouseEvent в eventFilter


Автор: Atiskara 22.7.2014, 13:46
Есть MainWindow, где
Код

QList<QWidget*> widgets = qFindChildren<QWidget*>(this);
    foreach(QWidget *widget, widgets)
            widget->installEventFilter(this);


теперь в eventFilter отлавливаю нажатие на кнопку мыши, где мне нужно узнать какой элемент был нажат, чтобы изменить состояние этого элемента. Как это сделать?

Код

bool MainWindow::eventFilter(QObject *target, QEvent *event)
{

 if ( event->type() == QEvent::MouseButtonPress ) {
      //Здесь
 }
 return QObject::eventFilter(target, event);
}


или я использую неправильный подход и лучше сигналы и слоты использовать?

Автор: Atiskara 22.7.2014, 14:43
разобралась. 
QObject *target и есть инициатор события.
Хотя так и осталось непонятно, почему target, т.е. цель, куда направлялся event сам же и является инициатором.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)