(31)Qt里事件类的继承关系,以及 QObject、QWdget里的事件成员函数定义。

(1)

在这里插入图片描述

(2)

在这里插入图片描述
++给出代码版

class Q_CORE_EXPORT QObject //QObject里关于事件的支持
{
    Q_OBJECT

public:
    Q_INVOKABLE explicit QObject(QObject * parent = nullptr);

    virtual ~QObject();

    virtual bool       event      (                   QEvent * event);
    virtual bool       eventFilter(QObject * watched, QEvent * event);

    void        installEventFilter(QObject * filterObj);
    void         removeEventFilter(QObject * obj);

protected:

    virtual void  timerEvent(QTimerEvent * event);
    virtual void  childEvent(QChildEvent * event);
    virtual void customEvent(QEvent      * event);

}; //结束 class QObject 的定义

(3)

在这里插入图片描述

++

class Q_WIDGETS_EXPORT QWidget : public QObject, public QPaintDevice
{ protected:  // Event handlers
    bool                         event(QEvent            * event) override;
    virtual void       mousePressEvent(QMouseEvent       * event);
    virtual void     mouseReleaseEvent(QMouseEvent       * event);
    virtual void mouseDoubleClickEvent(QMouseEvent       * event);
    virtual void        mouseMoveEvent(QMouseEvent       * event);
    virtual void            wheelEvent(QWheelEvent       * event);
    virtual void         keyPressEvent(QKeyEvent         * event);
    virtual void       keyReleaseEvent(QKeyEvent         * event);
    virtual void          focusInEvent(QFocusEvent       * event);
    virtual void         focusOutEvent(QFocusEvent       * event);
    virtual void            enterEvent(QEnterEvent       * event);
    virtual void            leaveEvent(QEvent            * event);
    virtual void            paintEvent(QPaintEvent       * event);
    virtual void             moveEvent(QMoveEvent        * event);
    virtual void           resizeEvent(QResizeEvent      * event);
    virtual void            closeEvent(QCloseEvent       * event);
    virtual void      contextMenuEvent(QContextMenuEvent * event);
    virtual void           tabletEvent(QTabletEvent      * event);
    virtual void           actionEvent(QActionEvent      * event);
    virtual void        dragEnterEvent(QDragEnterEvent   * event);
    virtual void         dragMoveEvent(QDragMoveEvent    * event);
    virtual void        dragLeaveEvent(QDragLeaveEvent   * event);
    virtual void             dropEvent(QDropEvent        * event);
    virtual void             showEvent(QShowEvent        * event);
    virtual void             hideEvent(QHideEvent        * event);
    virtual void           changeEvent(QEvent            *      );
    virtual bool           nativeEvent(const QByteArray & eventType, void * message,
                                        qintptr * result);
    virtual void      inputMethodEvent(QInputMethodEvent *      );
}; //完结 class QWidget : public QObject, public QPaintDevice

(4)

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangzhangkeji

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值