【问题标题】:Programatically fire a QMouseEvent and Keyboard Event given only global x,y coordinate仅给定全局 x,y 坐标,以编程方式触发 QMouseEvent 和键盘事件
【发布时间】:2011-05-11 06:34:18
【问题描述】:

MachineA 上,MouseMove 事件被从屏幕捕获到Machine BviewerWidget。和MouseClick 来自MachineB 的小部件的事件被传送到MachineA 的屏幕。 MachineB 中的KeyboardEvent 被带到MachineA。我不知道这个事件触发了什么小部件。我所知道的是全局 x,y 坐标。即使是KeyboardEvents
我的问题是:

  1. 如何从/向 desktopWidget 捕获/触发 MouseMove 或 MouseClick 事件?
  2. 如何从/向 desktopWidget 捕获/触发键盘事件?

【问题讨论】:

  • 您或许应该创建一个新问题。完全改变你的问题意味着我的回答(它正确地解决了你之前的问题)不再有意义,甚至被否决。

标签: c++ winapi qt mouseevent keyboard-events


【解决方案1】:

类似的东西应该可以解决问题。

QMouseEvent* event = new QMouseEvent( QEvent::MouseButtonPress, QPoint( x, y ), button, modifiers);
QApplication::postEvent( widget, event );

【讨论】:

  • 但我不知道在哪个物体上发射它。我所知道的只是全局 x,y 坐标。没有别的了。
  • 我们最顶级的小部件呢?你的主窗口?
  • 我应该在desktopWidget 上开火吗?以及如何从 DesktopWidget 获取 MouseEvents 和 Kyeboard 事件?我需要在桌面上启动它。不在特定应用程序窗口上。位于该 x,y 坐标上的任何应用程序都会获得该事件。
  • 一切都清楚了。假设我们有事件发生的机器 A。然后您将它们发送到您想要解雇它们的机器 B.. 1) 什么是 desktopWidget? 2)您的第二个问题是指如何在机器 A 上捕获事件?
  • 看起来好像您正在实施某种 RDP。很抱歉,我对您的编辑没有任何答复。我的回答仍然适用于你原来的问题,但你必须从那里开始。对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 2013-05-05
  • 2017-03-02
相关资源
最近更新 更多