自定義4 4矩陣鍵盤在Qt4程式中的使用方法

2021-06-07 23:27:31 字數 4057 閱讀 8429

解壓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...