(177)理论讲解 :
++补充 :
++给出代码版 :
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 的定义
++
++
++给出代码版 :
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
++ 以及 :
(178) 开始本节的程序例题 :
++添加资源文件 :
(179) 改变按钮的颜色 :
(180)实现基类里的事件函数 :
++
++本进程的构造函数 :
++
++测试结果如下 :
++
++
++
(181)
谢谢