這個資料貌似不多,如果找的到貌似也不全,當然也可以將矩陣鍵盤做成外掛程式到qt中,我實施了一下,還是因為資料不全,自己資質也有限,沒能繼續做下去,能使我做下去的也只有這種要耗費大量精力的簡單重複勞動。下面開始講一下我如何將矩陣鍵盤加入到qt4中使用的。
首先就是改qt的原始檔,我改了/src/gui/embedded中的幾個檔案,他們分別是qkbddrive***ctory.cpp(這個檔案是用來載入你的鍵盤的),myqkbd_qws.h。myqkbd_qws.cpp(這兩個檔案分別是你自己寫的鍵盤介面的標頭檔案和原始檔,當然使用這個的前提是你的鍵盤驅動已經可以使用了)。
#ifndef qkbdtty_qws_h
#define qkbdtty_qws_h
#include #ifndef qt_no_qws_keyboard
#ifndef qt_no_qws_kbd_tty
class qwsmykbprivate;
class qwsmykeyboardhandler : public qwskeyboardhandler
;#endif // qt_no_qws_kbd_tty
#endif // qt_no_qws_keyboard
#endif // qkbdtty_qws_h
這個是標頭檔案。
#include "qkbdtty_qws.h"
#if !defined(qt_no_qws_keyboard) && !defined(qt_no_qws_kbd_tty)
#include #include #include #include #include #include #include #include #include class qwsmykbprivate : public qobject
private q_slots:
void readkeyboarddata();
private:
qwsmykeyboardhandler *m_handler;
qstring terminalname;
int buttonfd;
int kbdidx;
int kbdbufferlen;
unsigned char *kbdbuffer;
qsocketnotifier *notifier;
};qwsmykeyboardhandler::qwsmykeyboardhandler(const qstring &device)
: qwskeyboardhandler(device)
qwsmykeyboardhandler::~qwsmykeyboardhandler()
qwsmykbprivate::qwsmykbprivate(qwsmykeyboardhandler *h, const qstring &device)
: m_handler(h)
printf("open /dev/atao_button ok!\tbuttonfd=%d\n",buttonfd);
if ( buttonfd >= 0 )
kbdbufferlen = 80;
kbdbuffer = new unsigned char [kbdbufferlen];
kbdidx = 0;
}qwsmykbprivate::~ qwsmykbprivate()
delete notifier;
notifier = 0;
delete kbdbuffer;;
}void qwsmykbprivate::readkeyboarddata()
m_handler->processkeyevent( unicode, keycode, 0, true, false );
m_handler->processkeyevent( unicode, keycode, 0, false, false);
// m_handler->processkeyevent( 0, keycode, 0, true, false );
}#include "qkbdtty_qws.moc"
#endif // qt_no_qws_keyboard ||qt_no_qws_kbd_tty
這個是原始檔。
以上兩段**沒有什麼問題,主要是之前的作者把它直接覆蓋了qkbdtty_qws.h和qkbdtty_qws.h這兩個檔案,我沒有這樣做,自己新建了檔案,但是這樣就涉及到乙個問題:這個鍵盤要到qkbddrive***ctory.cpp下註冊才能使用,我仿照qkbdtty_qws.h和上面的參考資料註冊了一下。
#ifndef qt_no_mykbd
if ( driver == 「mykbd」 || driver.isempty() )(這段**看自己的程式)
return new mykbdhandler( device );
#endif
註冊完了可以開始make&make install了,但是前提是必須在make之前修改makefile檔案,因為增加了myqkbd_qws.h和myqkbd_qws.cpp檔案,必須增加它們到makefile裡面,當然由於在這我增加的檔案的地位和qkbdtty_qws.h及qkbdtty_qws.cpp地位相當,因此在有qkbdtty_qws.h和qkbdtty_qws.cpp的地方就模仿寫一下自己檔案的依賴就可以了。
最後就可以make&make install了。
在編qt程式的時候,主要用到libqtgui.so開頭的動態檔案,把他們放到開發板中去,標頭檔案用到的是include/qtgui中的檔案。我增加了myqkbd_qws.h檔案,在檔案中寫入了真正的該檔案的位址,這樣qt程式就可以找到這個標頭檔案了,那麼qt也就可以響應矩陣鍵盤了。
最最後還要在開發板上設定環境變數:export qws_keyboard=mykbd:/dev/mykeyboard
將Apache service加入到開機啟動中
最近vps有的時候會無故重啟,每次都要手動開啟apache太麻煩,加到啟動項裡好了 cp usr local apache2 bin apachectl etc rc.d init.d sudo vim etc rc.d init.d apachectl檔案頭加入以下內容 bin sh chkcon...
將redis服務加入到window服務
將redis服務加入到window服務 1 在cmd命令視窗下執行 redis server.exe service install redis.windows.conf loglevel verbose 示例 e wrcold520 redis 3.2.100 windows 32 redis r...
將python檔案加入到python環境變數中
在python中,如何把乙個python資料夾 及其包含的python檔案 加入到python環境變數中以方便其他python檔案呼叫呢。有兩種方法,下面對其進行簡單的介紹。1.import sys 匯入系統自帶的sys模組,然後將需要加入的資料夾的路徑進行追加或者插入,如下 import sys ...