QT如何处理来自外部C ++类的按钮事件

时间:2017-02-28 20:50:44

标签: c++ qt button eventhandler qtcore

我想写一个名为“buttonHandler”的外部C ++类,它在Qt中特别支持按钮单击事件,但我不知道如何从“mainContainer”类创建指向对象(按钮)的硬链接同时由另一个班级处理它们。这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找event filters。基本上你有一个对象(派生自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);