给活动窗口发送按键事件,直接上测试代码
QWidget *activeWindow;
QList<QWidget*> topLevelWidgets = qApp->topLevelWidgets();
foreach (QWidget *widget, topLevelWidgets)
{
// 这是活动窗口
if (widget->isActiveWindow())
{
activeWindow=widget;
}
}
if (activeWindow)
{
// 输出当前活动窗口的标题
qDebug() << "Active Window Title: " << activeWindow->windowTitle();
// 创建一个按键事件
QKeyEvent keyEvent(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier);
// 发送按键事件到拥有焦点的窗口
QGuiApplication::sendEvent(activeWindow, &keyEvent);
}
else
{
qDebug() << "No active window.";
}