查看完整版本: [-- qt 实现tv 界面;qt如何响应 遥控器的按键信息? --]

QTCN开发网 -> Qt嵌入式开发 -> qt 实现tv 界面;qt如何响应 遥控器的按键信息? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

suma_alex 2017-04-11 14:28

qt 实现tv 界面;qt如何响应 遥控器的按键信息?


如题:最近在做一个项目,用qt实现电视机的控制界面类似于机顶盒,在接收来自遥控器按键信息时,不知道如何将按键转化为qt能够识别的事件

例如:
遥控器上按下 up按键,qt识别后,界面同时更新。

是需要自定义事件吗....

never_forget 2017-04-11 17:02
遥控器上的是属于键盘事件嘛 ?这个可以用吗 ?

chamsdoncon 2017-04-11 20:32
你的设备上面红外接收模块,它跟主板之间只如何通讯的你要明白。比如是串口,你就监控解析对应的串口数据。

大漠之鹰 2017-04-12 09:28
捕捉红外信号,然后发射自定义的Qt的信号给槽函数进行响应就行啊,很简单的。就是处理红外数据

suma_alex 2017-04-12 14:16
chamsdoncon:你的设备上面红外接收模块,它跟主板之间只如何通讯的你要明白。比如是串口,你就监控解析对应的串口数据。 (2017-04-11 20:32) 

遥控器跟主板的通信我已经完成了,并且能够解析出来遥控器上的按键信息,比如是up还是left

我对于qt而言是个初学者,现在不明白的是:
解析后的up或者left如何被qt-UI响应,
换个问法就是:qt如何模拟键盘事件,并发送到qml
我的ui是qml实现的

suma_alex 2017-04-12 14:19
大漠之鹰:捕捉红外信号,然后发射自定义的Qt的信号给槽函数进行响应就行啊,很简单的。就是处理红外数据 (2017-04-12 09:28) 

遥控器上的方向按键 如何改变 qml实现的界面上  的焦点呢?

suma_alex 2017-04-12 19:10
已解决
Q_INVOKABLE void sendCkeyPressEvent(QObject* receiver,Qt::Key CkeyId);
Q_INVOKABLE void sendCkeyReleaseEvent(QObject* receiver,Qt::Key CkeyId);
void CKeyEvent::sendCkeyPressEvent(QObject* receiver,Qt::Key CkeyId)
{
    QKeyEvent keyPressEvent(QEvent::KeyPress, CkeyId, Qt::NoModifier);
    QGuiApplication::sendEvent(receiver, &keyPressEvent);
}
void CKeyEvent::sendCkeyReleaseEvent(QObject* receiver,Qt::Key CkeyId)
{
    QKeyEvent keyReleaseEvent(QEvent::KeyRelease, CkeyId, Qt::NoModifier);
    QGuiApplication::sendEvent(receiver, &keyReleaseEvent);
}


查看完整版本: [-- qt 实现tv 界面;qt如何响应 遥控器的按键信息? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled