没有一些关键[QKeyEvent]

时间:2016-11-03 16:28:22

标签: linux qt embedded qkeyevent

我设计了一个我无法访问系统键盘的应用程序(在Debian下编写)。这是通过RS232连接的键盘监视器。按钮必须发出按键Tab,Backtab,箭头和Enter键。 在主对话框的类中,我发出相应按钮的信号,即

if (key == KEY_TAB)
{
    emit KeyPressTab ();
}

使用以下呼叫在各种对话框中捕获此信号:

QObject :: connect (mainwindow, SIGNAL (KeyPressTab ()), this, SLOT (OnKeyPressTab ()));

反过来,相同的功能插槽是:

void SecondDialog :: OnKeyPressTab ()
{
    QKeyEvent event (QEvent :: KeyPress, Qt :: Key_Tab, Qt :: NoModifier);
    QApplication :: sendEvent (this, & event);
}

通过这种方式,制表和BackTab工作没有问题,但箭头和输入不起作用。 我使用相同的机制,例如:

------------------------------- ----------------- Main Window ------------
if (key == KEY_LEFT)
    emit KeyPressLeft ();

------------------------------- ----------------- Second Dialog-----------
QObject :: connect (mainwindow, SIGNAL (KeyPressLeft ()), this, SLOT (OnKeyPressLeft ()));

void SecondDialog:: OnKeyPressLeft ()
{
    QKeyEvent event (QEvent::KeyPress, Qt::Key_left, Qt::NoModifier);
    QApplication :: sendEvent (this, & event);
}

不幸的是,没有反应。

为了澄清,我在下面发布了算法。

enter image description here

0 个答案:

没有答案