如何在Python/PyQt中模拟真实键盘的按键?



我需要编写一个虚拟键盘来键入文本,我计划使用Python和Qt(PyQt)库来完成此任务。 问题是我不知道如何将按键模拟为真正的键盘,而不是内部Qt事件,而是模拟真实键盘,所以我可以像使用真实键盘一样使用这个键盘 - 与计算机上的应用程序交互。我在Qt文档中找不到任何关于此的内容。那么有没有办法通过PyQt/Qt做到这一点,或者我需要使用一些Python库,究竟是哪个?

我知道这是一个 PyQt 问题,但应 OP 的要求,将给出一个 c++ 示例,以防它有助于找到 Python 解决方案。

在 c++ 端,模拟键盘是通过将按键事件发布到应用程序的事件循环来完成的。这些可能被视为"内部Qt事件",但与物理按键接收的界面完全相同。它们按如下方式完成:

QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter);
QCoreApplication::postEvent (receiver, event);

浏览 PyQt QCoreApplcation API,postEvent函数也存在,因此应该可以做一些类似的事情(不幸的是,我无法提供示例,因为我不熟悉编写 python 脚本)。

我遇到了同样的问题。

Pyautogui对此非常好,而且非常简单。

import pyautogui
pyautogui.typewrite("the stuff")

或者,如果您想实际模拟按下文字按键,请使用:

import pyautogui
pyautogui.keypressDown("the stuff")
pyautogui.keypressUp("the stuff")

以下是文档:https://pyautogui.readthedocs.org/en/latest/

希望这有帮助。

最新更新