bool MyButton::eventFilter(QObject* obj, QEvent* event) { if (obj == this && event->type() == QEvent::MouseButtonPress) { QMouseEvent* mouseEvent = static_cast(event); // Handle mouse press event return true; // Consume the event } return false; // Let the base class handle the event } void MyButton::setupButton() { // Install event filter to monitor mouse events installEventFilter(this); }
class TextEdit : public QTextEdit { public: TextEdit(QWidget* parent = nullptr); protected: bool eventFilter(QObject* obj, QEvent* event) override; }; TextEdit::TextEdit(QWidget* parent) : QTextEdit(parent) { // Install event filter to monitor key events installEventFilter(this); } bool TextEdit::eventFilter(QObject* obj, QEvent* event) { if (event->type() == QEvent::KeyPress) { QKeyEvent* keyEvent = static_castIn the example, a custom widget TextEdit is created that extends QTextEdit. The eventFilter is overridden to handle key press events, and the constructor installs the event filter. Package library: Qt5Core.(event); qDebug() << "Key press event: " << keyEvent->key(); // Handle key press event return true; // Consume the event } return false; // Let the base class handle the event }