基于Qt的嵌入式Linux通訊簿程序設(shè)計
新建聯(lián)系人信息包括姓名、電話、郵件及地址,在函數(shù)中定義一個字符串類型函數(shù):
ST ring lSQL ST ring
并給lSQL ST ring 賦值:
lSQLSt ring = Create Table + Const ∶∶DBTBL _ADDRESS + ( +
Const∶∶DBCOL _NAME + , + Const ∶∶DBCOL _TEL EPHONE + , +
Const∶∶DBCOL _ EMAIL + , + Const ∶∶DBCOL _ADDRESS + , + ) ;
編輯聯(lián)系人信息時,定義成員函數(shù):
void AddressBook∶∶edit Slot ()
分別在姓名、電話、郵件及地址欄中輸入信息:
ent ry - > setName (lRows[0 ]) ; / / 在第1 行0 列輸入name
ent ry - > set TelePhone (lRows[ 1 ]) ;/ / 在第1 行1 列輸入telephone
ent ry - > set Email (lRows[2 ]) ; / / 在第1 行2 列輸入email
ent ry - > setAddress (lRows[3 ]) ; / / 在第1 行3 列輸入address
刪除聯(lián)系人信息時,定義成員函數(shù):
void AddressBook∶∶delSlot ()
選擇要刪除的聯(lián)系人,從數(shù)據(jù)庫刪除該聯(lián)系人信息:
ST ring lSQLSt ring ;
lSQLSt ring = Delete f rom + Const ∶∶DBTBL _ADDRESS + where +
Const∶∶DBCOL_NAME + = + aName ;
查詢聯(lián)系人時,定義成員函數(shù):
void AddressBook∶∶searchSlot ()
在查詢框中輸入聯(lián)系人的姓名、電話、郵件及地址信息之一,選擇相應(yīng)的查詢方式:
ST ring lSQLSt ring = Select + Const ∶∶DBCOL _NAME + ,
+ Const ∶∶DBCOL _ TEL EPHONE + , + Const ∶∶DBCOL_EMAIL + ,
+ Const∶∶DBCOL _ADDRESS + f rom + Const ∶∶DBTBL_ADDRESS
+ where + Const ∶∶DBCOL _ NAME + = +aName ;
受篇幅限制,AddressBook1 h , New1 h ,New1cpp ,SQL1cpp ,SQL1 h 代碼不再給出。
1.4 編寫主函數(shù)
每一個Qt 應(yīng)用程序都包含一個主函數(shù)main1cpp . 主函數(shù)是應(yīng)用程序執(zhí)行的入口點。以下是AddressBook 的主函數(shù)文件main1cpp 的關(guān)鍵代碼:
int main (int argc , char 3 3argv)
{
QApplication AddressBook ( argc , argv ) ;/ / 創(chuàng)建Qapplication 對象,管理整個程序資源
AddressBook 3 AddressBook = new AddressBook(log) ;/ / 創(chuàng)建程序主窗口
app . setMainWidget ( mainWin ) ;/ / 設(shè)置mainWin 部件為程序的主部件
mainWin - > show() ;/ / 使mainWin 部件可視
return AddressBook. exec () ;/ / 把程序控制權(quán)交還給Qt
}
1.5 編輯工程文件
代碼編寫完成后,需要把文件AddressBook1cpp , AddressBook1 h , New1 h ,New1cpp , SQL1 h 及SQL1cpp 添加到工程文件AddressBook1pro 中:
HEADERS = AddressBook. h New. h SQL . h
SOURCES = AddressBook. cpp New. cpp SQL.cpp main. cpp
1.6 生成可執(zhí)行文件
編譯器是根據(jù)Makefile 文件內(nèi)容來進行編譯的,所以需要生成一個Makefile 文件1Qt 提供的qmake 工具可以從一個工程文件( . pro 文件) 中產(chǎn)生Makefile 文件,然后再使用make 命令對整個工程進行編譯鏈接:
生成的二進制文件AddressBook 就是可以直接運行的可執(zhí)行文件。程序運行結(jié)果如下面圖示,圖4是按照姓名(Name) 查詢聯(lián)系人Mat rix 的信息,圖5是編輯新聯(lián)系人Mat rix 的信息。
圖4 按姓名查詢聯(lián)系人
圖5 編輯新聯(lián)系人信息
程序編譯成功后可先在Virt ual f ramebuffer(虛擬緩沖幀) 中運行,確證無誤后再交叉編譯在開發(fā)板上運行。交叉編譯時要確保$Q TEDIR/ lib 下有需要在開發(fā)板上運行的庫文件。
2 結(jié)論
所設(shè)計的通訊簿程序具有對聯(lián)系人的姓名、電話、郵件地址及通訊地址等信息的記錄、新建、編輯、刪除、查詢等功能,且可按照姓名、電話、郵件地址及通訊地址4 種查詢方式來檢索聯(lián)系人。程序的設(shè)計很好地體現(xiàn)了Qt 的信號與槽機制,并且使用QtDesigner 可方便地進行可視化程序界面設(shè)計,通過使用Qt 中豐富的類函數(shù),利用其面向?qū)ο蠛湍K化的特征,避免了繁瑣的X 編程。通訊簿程序的設(shè)計對在Linux 下使用Qt 開發(fā)其他嵌入式GUI 程序具有一定的指導(dǎo)意義。
評論