<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于Qt的嵌入式Linux通訊簿程序設(shè)計(jì)

          基于Qt的嵌入式Linux通訊簿程序設(shè)計(jì)

          作者: 時(shí)間:2018-08-28 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201808/387883.htm

          新建聯(lián)系人信息包括姓名、電話、郵件及地址,在函數(shù)中定義一個(gè)字符串類(lèi)型函數(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í),定義成員函數(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í),定義成員函數(shù):

          void AddressBook∶∶delSlot ()

          選擇要?jiǎng)h除的聯(lián)系人,從數(shù)據(jù)庫(kù)刪除該聯(lián)系人信息:

          ST ring lSQLSt ring ;

          lSQLSt ring = Delete f rom + Const ∶∶DBTBL _ADDRESS + where +

          Const∶∶DBCOL_NAME + = + aName ;

          查詢(xún)聯(lián)系人時(shí),定義成員函數(shù):

          void AddressBook∶∶searchSlot ()

          在查詢(xún)框中輸入聯(lián)系人的姓名、電話、郵件及地址信息之一,選擇相應(yīng)的查詢(xún)方式:

          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 編寫(xiě)主函數(shù)

          每一個(gè)Qt 應(yīng)用程序都包含一個(gè)主函數(shù)main1cpp . 主函數(shù)是應(yīng)用程序執(zhí)行的入口點(diǎn)。以下是AddressBook 的主函數(shù)文件main1cpp 的關(guān)鍵代碼:

          int main (int argc , char 3 3argv)

          {

          QApplication AddressBook ( argc , argv ) ;/ / 創(chuàng)建Qapplication 對(duì)象,管理整個(gè)程序資源

          AddressBook 3 AddressBook = new AddressBook(log) ;/ / 創(chuàng)建程序主窗口

          app . setMainWidget ( mainWin ) ;/ / 設(shè)置mainWin 部件為程序的主部件

          mainWin - > show() ;/ / 使mainWin 部件可視

          return AddressBook. exec () ;/ / 把程序控制權(quán)交還給Qt

          }

          1.5 編輯工程文件

          代碼編寫(xiě)完成后,需要把文件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)容來(lái)進(jìn)行編譯的,所以需要生成一個(gè)Makefile 文件1Qt 提供的qmake 工具可以從一個(gè)工程文件( . pro 文件) 中產(chǎn)生Makefile 文件,然后再使用make 命令對(duì)整個(gè)工程進(jìn)行編譯鏈接:

          生成的二進(jìn)制文件AddressBook 就是可以直接運(yùn)行的可執(zhí)行文件。程序運(yùn)行結(jié)果如下面圖示,圖4是按照姓名(Name) 查詢(xún)聯(lián)系人Mat rix 的信息,圖5是編輯新聯(lián)系人Mat rix 的信息。

          圖4 按姓名查詢(xún)聯(lián)系人

          圖5 編輯新聯(lián)系人信息

          程序編譯成功后可先在Virt ual f ramebuffer(虛擬緩沖幀) 中運(yùn)行,確證無(wú)誤后再交叉編譯在開(kāi)發(fā)板上運(yùn)行。交叉編譯時(shí)要確保$Q TEDIR/ lib 下有需要在開(kāi)發(fā)板上運(yùn)行的庫(kù)文件。

          2 結(jié)論

          所設(shè)計(jì)的通訊簿程序具有對(duì)聯(lián)系人的姓名、電話、郵件地址及通訊地址等信息的記錄、新建、編輯、刪除、查詢(xún)等功能,且可按照姓名、電話、郵件地址及通訊地址4 種查詢(xún)方式來(lái)檢索聯(lián)系人。程序的設(shè)計(jì)很好地體現(xiàn)了Qt 的信號(hào)與槽機(jī)制,并且使用QtDesigner 可方便地進(jìn)行可視化程序界面設(shè)計(jì),通過(guò)使用Qt 中豐富的類(lèi)函數(shù),利用其面向?qū)ο蠛湍K化的特征,避免了繁瑣的X 編程。通訊簿程序的設(shè)計(jì)對(duì)在Linux 下使用Qt 開(kāi)發(fā)其他GUI 程序具有一定的指導(dǎo)意義。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 嵌入式

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();