首页| 论坛| 消息

标题:关于qte3.3.8键盘问题,请高手指教?
作者:自语的骆驼
日期:2010-09-07 09:25
内容:

关于qte3.3.8键盘问题,请高手指教?

最近在2410上移植qte3.3.8,交叉编译后把相关库下到开发板上,程序可以运行了,但是键盘没有反映,我板子上原来用的是qte2.3.7版本,键盘都可以正常使用,
不知道为什么换成qte3.3.8之后就没有反映了,下面是我在网上找到的加入自定义键盘的方法,有不太明白的地方,请哪位大哥帮忙看一下,小弟先谢过了!
下面是自定义键盘接口:需要改动的地方有4个,在qt-arm/src/embedded 目录下
1.增加一个mykbd_qws.h,内容如下:
#ifndef MYKBD_QWS_H
#define MYKBD_QWS_H
#include "qkbd_qws.h"//QT定义抽象基类QWSKeyboardHandler

#ifndef QT_NO_MYKBD //编译时可以通过定义这个变量从而不编译这个模块
class MyKbdPrivate; //我们的键盘设备私有类,实现具体的键盘设备操作,如打开键盘、读键盘数据,解析按键等等。

class MyKbdHandler : public QWSKeyboardHandler //供系统调用的键盘句柄
{
public:
MyKbdHandler(const QString&);
virtual ~MyKbdHandler();
private:
MyKbdPrivate *d;
};
#endif // QT_NO_MYKBD
#endif // MYKBD_QWS_H
2.增加一个mykbd_qws.cpp,内容如下:
#include "mykbd_qws.h"
#ifndef QT_NO_MYKBD
#include
#include
#include
#include
#include
#include
#include
#include
class MyKbdPrivate : public QObject
{
Q_OBJECT
public:
MyKbdPrivate( MyKbdHandler *h, const QString& );
virtual ~MyKbdPrivate();
bool isOpen() { return buttonFD > 0; }
private slots:
void readKeyboardData();
private:
QString terminalName;
int buttonFD;
int kbdIdx;
// int kbdBufferLen;
unsigned char kbdBuffer;
QSocketNotifier *notifier;
MyKbdHandler *handler;
};
..


#1 [ketiy2004 09-27 14:18]
/dev/mykeyboard 这个是你键盘的驱动!
#2 [kofer99 07-27 12:39]
楼主,你好,你的问题解决了吗?我现在也在写自定义键盘,我用的是Qt4.7.3,但是我在make的时候,报错“undefined reference to “QWSMyKeryboardHandler””,能否给点指导?

回复 发表
主题 版块