QT как обработать событие нажатия кнопки из внешнего класса C++

Я хочу написать внешний класс C++ под названием "buttonHandler", который поддерживает специально событие нажатия кнопки в Qt, но я не знаю, как создать жесткую ссылку на объекты (кнопки) из класса "mainContainer" и одновременно обрабатывать их другим классом. Это вообще возможно?

1 ответ

Я думаю, что вы ищете фильтры событий. В основном у вас есть объект (полученный из QObject) который слушает события другого объекта. Он вызывается до того, как объект обработает свои собственные события. Быстрый пример:

bool ButtonPressHandler::eventFilter(QObject* obj, QEvent* event) {
  if (obj == the_main_container && event->type() == QEvent::MousePress) {
    /* do what ever you have to do */
    return true; // true to stop processing events, false to forward the event
  }

  return false;
}

Где-то в вашем коде вы связываете оба:

the_main_container->installEventFilter(the_button_press_handler);
Другие вопросы по тегам