码迷,mamicode.com
首页 > 其他好文 > 详细

Qt__自定义事件

时间:2018-06-07 16:24:45      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:alt   handler   自定义事件   type   分享图片   png   been   deb   inf   

#include <QApplication>
#include <QEvent>
#include <QObject>
#include <QDebug>

const QEvent::Type MyEventType = (QEvent::Type)QEvent::registerEventType(QEvent::User+100);

class MyEvent: public QEvent
{
public:
    MyEvent(Type MyEventType):QEvent(MyEventType){}
};

class MyObject: public QObject
{
public:
    void MyEventHandler(QEvent *event);
    bool event(QEvent *event);
};

void MyObject::MyEventHandler(QEvent *event)
{
    qDebug()<<"The event is being handled!";
    event->accept();
}

bool MyObject::event(QEvent *event)
{
    if(event->type() == MyEventType)
    {
        qDebug()<<"event() is dispathing MyEvent";
        MyEventHandler(event);
        if((MyEvent*)event->isAccepted())
        {
            qDebug()<<"The event has been handled!";
            return true;
        }
    }
    return QObject::event(event);
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    MyObject mywindow;
    MyEvent myEvent(MyEventType);
    a.sendEvent(&mywindow,&myEvent);
    return a.exec();
}

运行结果
技术分享图片

Qt__自定义事件

标签:alt   handler   自定义事件   type   分享图片   png   been   deb   inf   

原文地址:https://www.cnblogs.com/narjaja/p/9151101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!