Qt Embedded 키보드 구동 분석(아래)
관련된 코드:
키보드plugin 프레임워크:src/plugins/kbddrivers/usb/main.cpp
키보드 driver handler의 실현: src/gui/embedded/qkbdusbqws.cpp
플러그인 프레임워크main.cpp
4
class QUsbKbdDriver : public QKbdDriverPlugin
{
public:
QUsbKbdDriver();
QStringList keys() const;
QWSKeyboardHandler* create(const QString &driver, const QString &device);
};
keys는 현재driver 플러그인의 키 값을 되돌려줍니다. 다른 플러그인의 키 값과 충돌하지 않으면 됩니다.create는 당신이 실현한 QWSKeyboardHandler 파생류의 실례를 되돌려줍니다.키보드 처리 실례 구현 qkbdusbqws.h
4
class QWSUsbKeyboardHandler : public QWSPC101KeyboardHandler
{
public:
QWSUsbKeyboardHandler(const QString&);
virtual ~QWSUsbKeyboardHandler();
private:
QWSUsbKbPrivate *d;
};
코드로 볼 때 이Handler의 클래스는QWSKeyboardHandler의 기본 클래스에서 파생되어야 하는 것 외에 특별한 요구가 없다.그러나 이에 대응하는 cpp 파일은 사실 많은 기능을 실현했고 편폭 관계는 전체 코드를 붙일 수 없다. 이에 따라 일반적인 키보드 드라이브 플러그인 절차를 다음과 같이 정리한다.1. 키보드 장치를 열고 초기화 - 일반적으로 오픈을 호출하고 장치 구동에 의해 결정된다
2. 키보드 이벤트 모니터링 - 일반적으로 QSocketNotifier로 키보드 fd 모니터링
3. 키보드 이벤트가 발생할 때 키보드 이벤트 정보를 읽는다. 예를 들어 누르거나 들어올리는 등이다. 보통read를 호출하거나 ioctl을 호출하는 것은 키보드 드라이브에 달려 있다.
4. 키보드 이벤트 정보를 얻은 후 키 값, 아래 등 정보를 Qt 내부 키보드 이벤트 형식으로 번역하고 프로세스 Key Event를 호출하여 이벤트를 나누어 줍니다.
5. 분석 함수 장치 닫는 것을 잊지 마라
90% 이상의 Keyboard Driver Handler는 이러한 절차를 따라 키보드를 처리하는데, 만약 우리가 자신의 플러그인을 쓰려고 한다면 틀림없이 이렇게 써도 틀림없다.구체적인 코드는 아마도 예를 좀 더 보아야 할 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mac의 빠른 검색을 위한 플러그인Mac의 표준 기능에는 빠른 검색(Quick Look)이 있습니다. 파일을 선택하고 공백을 누르면 미리 보기를 쉽게 표시할 수 있습니다. 표준이면 텍스트 파일, PDF, 이미지 등을 표시할 수 있습니다. 여기서는 편...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.