首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT/E中怎样响应开发板的按键事件?解决办法

2012-03-30 
QT/E中怎样响应开发板的按键事件?qt的界面和功能已经完成,现在已经下载到arm板子上面跑起来了,使用触摸屏

QT/E中怎样响应开发板的按键事件?
qt的界面和功能已经完成,现在已经下载到arm板子上面跑起来了,使用触摸屏可以正常的控制界面实现各种功能响应。现在要使用自定义的键盘控制这个qt程序,自定义的按键通过gpio口直接和arm核心板连接,一共8个按键,分别是up down right enter esc,还有两个自定义的功能键,请问这个怎么个弄法?另外按键的驱动已经修改好了,经过测试没问题。这个自定义的键盘如何控制arm板上的程序呢???!!!
qt已经折腾不轻了,又要在这里折腾啦,各位老大快出手帮忙了!!

[解决办法]
在坛子里找找吧,好像见过
[解决办法]
什么叫驱动已经修改好了?。。。。。。 驱动里有写每个按键的键值吧,传递键值
[解决办法]
看看此文是否有帮助:http://zengxx1989.javaeye.com/blog/718376

另:楼主可否把你的软硬件环境详细描述一下。
[解决办法]
另外按键的驱动已经修改好了
你这句话是什么意思?
驱动如果都弄好了,另外的自定义按键也都实现了。
你所说的按键驱动是怎么实现的?是修改QT源代码编译,还是QT默认支持的键盘按键,再或者是自己做的插件?
[解决办法]
你是怎么改的,是改keyboardfactory的create那个吗?
如果是的话,按照你的自定义按键的格式,把这两个按键添加进去就好了。

不过我建议你用插件的形式,调试修改方便,直接改源代码,编译一次就要你两个多小时了。
建议你贴出你改动的代码以及按键扫描码格式,我这两天刚做完键盘鼠标驱动,应该可以帮上你的忙。当时找资料累死了。
[解决办法]
不知道我理解的是否正确,我的想法是重写event函数,给你个例子:

C/C++ code
bool Main_Window::event( QEvent * e ){    if(e->type () == QEvent::KeyPress){        QKeyEvent *ke=(QKeyEvent *)e;        if(ke->key() == Qt::Key_Enter){                return true;        }                return QWidget::event(e);        }        else        return QWidget::event(e);}
[解决办法]
关注!!
求教楼主是如何解决的。!
[解决办法]
探讨

不知道我理解的是否正确,我的想法是重写event函数,给你个例子:
C/C++ code

bool Main_Window::event( QEvent * e )
{
if(e->type () == QEvent::KeyPress){
QKeyEvent *ke=(QKeyEvent *)e;
if(ke->key() == Qt::Key_E……

[解决办法]
不知道楼上说的对不对。

如果你在驱动中正确地处理了processkeyevent或processkeycode,QT自己会帮你转发消息的。

楼主先确认下你的问题所在吧。
[解决办法]
我的想法是这样的:
比如key1的值是0x01 ,你要实现成Qt::Key_0
那么注册个input事件,然后向操作系统传key 0x30 模拟成pc键盘的数字0键。
qt中还是在keyEventPress 中处理Qt::Key_0

热点排行