首页 > 其他 > 详细

Qt__自定义事件

时间:2018-06-07 16:09:20      阅读:176      评论:0      收藏:0      [点我收藏+]
#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__自定义事件

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!