zoukankan      html  css  js  c++  java
  • Qt__自定义事件

    #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();
    }
    

    运行结果

  • 相关阅读:
    Pika的设计及实现
    高性能网络编程
    C语言的结构体
    消息队列库——ZeroMQ
    Diffie-Hellman密钥交换算法
    mysql-proxy 读写分离
    位运算
    分布式学习之一:事务
    Redis Cluster
    SpringBoot整合ActiveMQ,看这篇就够了
  • 原文地址:https://www.cnblogs.com/narjaja/p/9151101.html
Copyright © 2011-2022 走看看