解壓qt-everywhere-opensource-src-4.7.0.tgz
到當前目錄。 1.
修改qt-everywhere-opensource-src-4.7.0
/src/gui/embedded
/src/gui/embedded/qkbdtty_qws.h
,其內容如下:
#ifndef qkbdtty_qws_h
#define qkbdtty_qws_h
#include
#ifndef qt_no_qws_keyboard
#ifndef qt_no_qws_kbd_tty
class qwsmykbprivate;
class qwsmykeyboardhandler : publicqwskeyboardhandler
;#endif // qt_no_qws_kbd_tty
#endif // qt_no_qws_keyboard
#endif // qkbdtty_qws_h
2. 修改
qt-everywhere-opensource-src-4.7.0
/src/gui/embedded/
qkbdtty_qws
.cpp
,其內容如下:
#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 : publicqobject
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, constqstring &device)
: m_handler(h)
printf("open /dev/atao_buttonok!\tbuttonfd=%d\n",buttonfd);
if ( buttonfd >= 0)
kbdbufferlen = 80;
kbdbuffer = new unsigned char[kbdbufferlen];
kbdidx = 0;
}qwsmykbprivate::~qwsmykbprivate()
delete notifier;
notifier = 0;
delete kbdbuffer;;
}voidqwsmykbprivate::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
注意,此處,我的鍵盤驅動裝置為/dev/atao_button,使用了4*4矩陣鍵盤,定義如下圖,所要,要先寫好鍵盤驅動啦。 3.
在qt-everywhere-opensource-src-4.7.0
目錄中執行如下
configure命令
./configure -prefix/usr/src/qt470arm.kb.4.2.2 -opensource -confirm-license -release-shared -embedded arm -xplatform qws/linux-arm-g++ -no-qt3support-fast -no-largefile -make tools -make demos -make examples -makedocs -qt-libjpeg -qt-libpng -qt-libtiff -qt-gif -**********
4. make & make install
重新grep "qwsmykeyboardhandler" * -r會得到如下結果表明新增自定義按鍵驅動成功
ttseibm@ttseibm-t60:~/qt-everywhere-opensource-src-4.7.0$ grep"qwsmykeyboardhandler" * -r
binary file lib/libqtgui.so.4.7matches
binary file lib/libqtgui.somatches
binary file lib/libqtgui.so.4.7.0matches
binary file lib/libqtgui.so.4matches
src/gui/embedded/qkbdtty_qws.h:classqwsmykeyboardhandler : public qwskeyboardhandler
src/gui/embedded/qkbdtty_qws.h:qwsmykeyboardhandler(const qstring &);
src/gui/embedded/qkbdtty_qws.h:virtual ~qwsmykeyboardhandler();
src/gui/embedded/qkbdtty_qws.cpp:qwsmykbprivate(qwsmykeyboardhandler *handler, const qstring&device);
src/gui/embedded/qkbdtty_qws.cpp:qwsmykeyboardhandler *m_handler;
src/gui/embedded/qkbdtty_qws.cpp:qwsmykeyboardhandler::qwsmykeyboardhandler(constqstring &device)
src/gui/embedded/qkbdtty_qws.cpp:qwsmykeyboardhandler::~qwsmykeyboardhandler()
src/gui/embedded/qkbdtty_qws.cpp:qwsmykbprivate::qwsmykbprivate(qwsmykeyboardhandler*h, const qstring &device)
src/gui/embedded/qkbddrive***ctory_qws.cpp: return newqwsmykeyboardhandler(device);
binary filesrc/gui/embedded/backup.tar matches
binary filesrc/gui/.obj/release-shared-emb-arm/qkbddrive***ctory_qws.omatches
binary filesrc/gui/.obj/release-shared-emb-arm/qkbdtty_qws.o matches
ttseibm@ttseibm-t60:~/qt-everywhere-opensource-src-4.7.0$
5. 用qt sdk 開發程式啦。。
4 QT自定義模型
在聊學習之前,想說一下將近乙個星期的時間我都幹了些什麼,為什麼沒有學習,總結起來乙個字 玩,11號朋友遠道而來,說是在家閒得慌,過來找我一起浪,直到昨天才將他送走,既然朋友來了,自然不能怠慢,請他吃飯,帶他閒逛,一起去爬山,還吃了一天的自製火鍋,回想起來這味道有點反胃。獨處的時候適合學習和思考,玩耍...
將矩陣鍵盤加入到QT4中使用
這個資料貌似不多,如果找的到貌似也不全,當然也可以將矩陣鍵盤做成外掛程式到qt中,我實施了一下,還是因為資料不全,自己資質也有限,沒能繼續做下去,能使我做下去的也只有這種要耗費大量精力的簡單重複勞動。下面開始講一下我如何將矩陣鍵盤加入到qt4中使用的。首先就是改qt的原始檔,我改了 src gui ...
4 自定義訊號和槽,QT4版本訊號槽的連線
也就是connect 的第二個和第四個引數 自定義訊號 begin ifndef teacher h define teacher h include class teacher public qobject endif teacher h 觸發函式,訊號發射 void teacher classi...