QCoreApplication类中有两个事件发送函数,用于发送指定事件。
bool QCoreApplication::sendEvent(QObject * receiver, QEvent * event)
void QCoreApplication::postEvent(QObject * reciver, QEvent * event, int priority = Qt::NormalEventPriority)
- sendEvent()会立即处理给定事件,QEvent对象参数再事件发送完成后无法自动删除,需要在栈上创建QEvent事件。
- postEvent()在下此主事件循环运行时才会处理,QEvent对象必须在堆上创建,发送后队列自动删除它。
eg.向pushbutton发送一个键盘q按下事件:
QKeyEvent myEvent(QEvent::KeyPress, Qt::Key_Q, Qt::NoModifier);
qApp->sendEvent(ui->pushbutton,&myEvent);