QT总可以在程序中自主发送事件
阻塞型事件发送
事件发送后需要等待事件处理完成
非阻塞型事件发送
事件发送后立即返回
事件被发送到事件中等待处理
事件被发送到事件队列中等待处理
Qt程序程序能够自主发送系统事件
QApplication类提供了支持事件发送的成员函数
sendEvent()发送事件后需要等待事件处理完成
postEevent()发送事件后立即返回
void Widget::testSendEvent()
{
QMouseEvent dbcEvt(QEvent::MouseButtonDblClick, QPoint(0, 0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
qDebug() << "Before sendEvent()";
QApplication::sendEvent(this, &dbcEvt);
qDebug() << "After sendEvent()";
}
void Widget::testPostEvent()
{
QMouseEvent* dbcEvt = new QMouseEvent(QEvent::MouseButtonDblClick, QPoint(0, 0), Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
qDebug() << "Before postEvent()";
QApplication::postEvent(this, dbcEvt);
qDebug() << "After postEvent()";
}