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);