我为一款基于触摸屏的平板电脑开发了一些软件。该设备没有键盘,只有一个触摸屏幕(触摸屏模拟鼠标)。操作系统是Windows 10,并且我们使用Qt作为图形用户界面框架。
我们依赖于一个类库Point Cloud Library,其中有一个组件需要按住SHIFT键才能在进行左键单击时发生某些事情。
我需要让底层软件组件相信SHIFT键已被按下。
我尝试通过“Qt方式”向Qt小部件发送按键事件,但伪造的SHIFT键按下似乎没有到达底层软件组件。这可能是因为它与Qt无关的类库并且这个软件类库可能会以不同的方式检查键事件(例如通过OS调用、C++标准方式或类似方式)。
当尝试使用“Qt方式”时,这似乎没有起作用:
因此,我可能需要使用操作系统方法来模拟按下SHIFT键。
问题: 我该如何在Qt中进行操作系统调用或类似操作,以使底层软件组件认为已经按下并保持了SHIFT键(与用户同时按下左鼠标键)。
我们依赖于一个类库Point Cloud Library,其中有一个组件需要按住SHIFT键才能在进行左键单击时发生某些事情。
我需要让底层软件组件相信SHIFT键已被按下。
我尝试通过“Qt方式”向Qt小部件发送按键事件,但伪造的SHIFT键按下似乎没有到达底层软件组件。这可能是因为它与Qt无关的类库并且这个软件类库可能会以不同的方式检查键事件(例如通过OS调用、C++标准方式或类似方式)。
当尝试使用“Qt方式”时,这似乎没有起作用:
QKeyEvent key_press(QEvent::KeyPress, Qt::Key_Shift, Qt::ShiftModifier);
QApplication::sendEvent(ui->qvtkWidget, &key_press);
因此,我可能需要使用操作系统方法来模拟按下SHIFT键。
问题: 我该如何在Qt中进行操作系统调用或类似操作,以使底层软件组件认为已经按下并保持了SHIFT键(与用户同时按下左鼠标键)。