Я хочу написать внешний класс C ++ под названием «buttonHandler», который поддерживает специально событие нажатия кнопки в Qt, но я не знаю, как создать жесткую ссылку на объекты (кнопки) из класса «mainContainer» и одновременно обрабатывать их другим классом. Это вообще возможно?
Я думаю, что вы ищете фильтры событий. В основном у вас есть объект (полученный из 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);
Других решений пока нет …