#include <QApplication>
#include<QWidget>
#include<QObject>
#include <iostream>
using namespace std;
QEvent::Type t1=(QEvent::Type)QEvent::registerEventType(1333);
QEvent e1(t1); //使用 QEvent 的構造函數創建自定義事件
//t2 的值與 t1 重複,使用 registerEventType 會自動產生一個合法的值
QEvent::Type t2=(QEvent::Type)QEvent::registerEventType(1333);
QEvent e2(t2);
class A:public QWidget
{
public:
bool event(QEvent* e)
{
if(e->type()==t1) {cout<<"AE"<<e->type()<<","; f1((QEvent*)e); return 1; }
if(e->type()==t2) {cout<<"BE"<<e->type()<<","; f2((QEvent*)e); return 1; }
return QWidget::event(e);
} //event 結束
void f1(QEvent *e)
{
cout<<"F1"<<endl;
}
void f2(QEvent *e)
{
cout<<"F2"<<endl;
}
};
class B:public QObject
{
public:
bool eventFilter(QObject *w, QEvent *e)
{
if(e->type()==t1){ cout<<"A"<<endl;return 0; }
if(e->type()==t2){ cout<<"B"<&
使用事件過濾器處理自定義事件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.