![](/img/trans.png)
[英]How to keep Qt Widgets responsive to keyboard and mouse while handling Windows Events?
[英]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.