簡體   English   中英

如何在 Qt 中模擬適用於 Linux 和 Windows 的所有鼠標和鍵盤事件?

[英]How can I simulate all mouse and keyboard events in Qt that works on Linux and Windows?

問題:我有一個設備向我發送一些命令(例如:1,2,3,...),我想根據 Linux 操作系統和 Windows 操作系統中收到的命令模擬鼠標和鍵盤事件。

我與bool QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority)但我不知道什么接收器傳遞給它,並且我對MouseMove操作有問題。

我發現這個幫助在 linux 操作系統中效果很好,但我在 Windows 操作系統中遇到了這種幫助方法的問題。 是否有任何方法適用於兩種操作系統?

感謝您的關注。

您可以通過以下方式設置鼠標位置:

QCursor::setPos(QPoint(10,10));

鼠標點擊模擬也可以通過以下方式完成:

QMouseEvent * event1 = new QMouseEvent ((QEvent::MouseButtonPress), QPoint(10,10),
    Qt::LeftButton,
    Qt::LeftButton,
    Qt::NoModifier   );

qApp->postEvent((QObject*)myWidget,(QEvent *)event1);

QMouseEvent * event2 = new QMouseEvent ((QEvent::MouseButtonRelease), QPoint(10,10),
    Qt::LeftButton,
    Qt::LeftButton,
    Qt::NoModifier   );

qApp->postEvent((QObject*)myWidget,(QEvent *)event2);

將關鍵事件發送到小部件就像:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM