#ifndef MYEVENT_H
#define MYEVENT_H
#include <QObject>
#include<QEvent>
class MyEvent: public QEvent
{
public:
MyEvent(int value1, double value2);
static const QEvent::Type eventType;
int getValue1() { return _value1; }
double getValue2() { return _value2; }
private:
int _value1;
double _value2;
};
#endif
#include "myevent.h"
const QEvent::Type MyEvent::eventType = (QEvent::Type)QEvent::registerEventType();
MyEvent::MyEvent(int value1, double value2):QEvent (Type(eventType)),_value1(value1),_value2(value2)
{
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QDebug>
#include<QEvent>
#include"myevent.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
virtual bool event(QEvent *event);
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
bool MainWindow::event(QEvent *event)
{
if(event->type() ==MyEvent:: eventType)
{
MyEvent* a=static_cast<MyEvent*>(event);
qDebug()<<a->getValue1()<<", "<<a->getValue2();
qDebug()<<"start event.....";
}
return QMainWindow::event(event);
}
void MainWindow::on_pushButton_clicked()
{
MyEvent* event = new MyEvent(100,200);
qApp->postEvent(this, event);
}