#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
1.经过学习,在qt中这个main方法中定义了一个QApplication a(argc,argv);的应用程序对象,在return a.exec()这个应用程序对象方法会不断捕获事件。
在事件的处理分为4给步骤:1.事件的产生-> 2.事件的过滤->3.事件分发->.4事件处理函数。
1.事件的产生条件:比如鼠标点击,滚轮滑动,键盘按下都会产生事件,会被应用程序对象的exec方法捕获,在由应用程序对象的notify方法发送到指定窗口。
2.事件过滤:在产生了事件后到事件被发送到达指定窗口中可以做事件过滤处理,事件过滤在应用程序对象类的父类Qobject中的eventFiter方法它是一个虚函数,所有可以重写.
3.事件分发:当事件没有被过滤且到达指定窗口的时候窗口就会进行事件的分发处理,比如分发的是鼠标事件或者键盘事件等等,在窗口类的父类event方法。
4.事件处理:就是窗口对象的事件处理函数了。
下面介绍一个键盘事件:
在头文件中从写这连个键盘事件:
virtual void keyPressEvent(QKeyEvent *event);//按下
virtual void keyReleaseEvent(QKeyEvent *event);//释放
在源文件中写入:
void MainWindow::keyPressEvent(QKey