freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于嵌入式gui的工作日志記錄器的設(shè)計(jì)與開發(fā)本科畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-27 20:28本頁(yè)面
  

【正文】 . 圖形用戶界面設(shè)計(jì);2. 應(yīng)用程序功能設(shè)計(jì)。 圖形用戶界面設(shè)計(jì)首先,在win xp下安裝QT sdk ,一切按默認(rèn)設(shè)置即可。然后,打開應(yīng)用程序,Ctrl+N新建工程。在創(chuàng)建工程的時(shí)候,要勾選上QSqlite的數(shù)據(jù)庫(kù)選項(xiàng)。然后添加各項(xiàng)文件,如下圖所示:圖 51 應(yīng)用程序工程結(jié)構(gòu)其中mainwindow為工作日志記錄器的主窗口,而mydialog1為添加工作日志的添加窗口。為了實(shí)現(xiàn)工作日志記錄器的顯示工作記錄表這一功能,所以需要在主窗口上設(shè)計(jì)一個(gè)用來(lái)顯示數(shù)據(jù)的插件。但是QT Creater也提供了很多種View插件,譬如有List view,tree view,table view,Column view這四種,并且這些在ui上面是一樣的。這時(shí)便要考慮Qt的模型的搭配問(wèn)題了。在本文開頭已經(jīng)簡(jiǎn)單介紹過(guò)本次設(shè)計(jì)準(zhǔn)備使用QSQLITE來(lái)實(shí)現(xiàn)工作日志的存儲(chǔ)工作,故而QSQLITE在QT中提供了QSqlQueryModel這個(gè)需要QSQLITE+Table View配合使用的模型,所以UI窗口上用Table view來(lái)顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù)表就這么定了下來(lái)。在主窗口上還需要實(shí)現(xiàn)添加窗口的調(diào)用,取消,刪除,提交,刷新,查找,退出等功能,所以還需要七個(gè)Pushbotton按鈕來(lái)調(diào)用各個(gè)功能函數(shù),并且在查找時(shí)需要一個(gè)Date Edit模塊來(lái)輸入所要查找的時(shí)間。根據(jù)以上需求,設(shè)計(jì)應(yīng)用程序主窗口如下:圖 52 應(yīng)用程序主窗口GUI其中包括了Date edit,pushbotton,Table view等幾個(gè)插件。而程序添加窗口UI的設(shè)計(jì)就比較簡(jiǎn)單,需要一個(gè)Date Edit來(lái)記錄日期,兩個(gè)Time Edit來(lái)記錄開始時(shí)間與結(jié)束時(shí)間,一條Line Edit來(lái)輸入文本;為了有添加、確認(rèn)和取消,所以又需要三個(gè)Pushbotton,根據(jù)一定的界面安排,將程序添加窗口的UI設(shè)計(jì)如下:圖 53 應(yīng)用程序子窗口GUI同樣有LineEdit,pushbotton,dateEdit,timedit這幾樣插件。至此為止,本次設(shè)計(jì)的應(yīng)用程序UI設(shè)計(jì)就完成了。 應(yīng)用程序功能設(shè)計(jì)要實(shí)現(xiàn)一個(gè)工作日志記錄器所要的基本功能,就是要能夠添加一天的工作日志并且將這個(gè)日志存儲(chǔ)起來(lái)。并且在下次打開的時(shí)候能夠在mainwindow的Table view插件中顯示出來(lái)。要實(shí)現(xiàn)這個(gè)最基本的功能,就需要使用QSqlite數(shù)據(jù)庫(kù)。QSqlite是QT自帶的一個(gè)小型嵌入式數(shù)據(jù)庫(kù),它不需要額外的驅(qū)動(dòng)支持,只需要在QT應(yīng)用程序中添加相關(guān)代碼就可以正確使用這個(gè)數(shù)據(jù)庫(kù)。而要正確鏈接這個(gè)小型的數(shù)據(jù)庫(kù),++頭文件,并添加如下代碼是來(lái)鏈接QSQLITE數(shù)據(jù)庫(kù):static bool createConnection(){ QSqlDatabase db = QSqlDatabase::addDatabase(QSQLITE)。 ()。 if(!()) return false。 在正確鏈接好數(shù)據(jù)庫(kù)之后,還需要?jiǎng)?chuàng)建一個(gè)相應(yīng)的五列(分別為ID,Date,Start,End,Conent)數(shù)據(jù)庫(kù)數(shù)據(jù)表workdata,創(chuàng)建數(shù)據(jù)表的代碼如下: QSqlQuery query。 (QObject::tr(create table workdata ( Id int primary key, Date varchar, Start varchar, End varchar, Content varchar)))。 }當(dāng)完成數(shù)據(jù)庫(kù)的鏈接以后,就需要使用上節(jié)提供的按鈕來(lái)進(jìn)行應(yīng)用程序的互動(dòng)操作了。這里,就需要使用Pushbotton的公共槽。Qt中,信號(hào)和槽是用于對(duì)象之間的通信。信號(hào)和槽機(jī)制是Qt中特有的部分,不同于其他框架提供的功能最核心的特征。在Qt中使用的信號(hào)和槽,信號(hào)是一個(gè)特定的事件的發(fā)生(Qt Creater的窗口部件中有許多預(yù)定義的信號(hào)供選擇)。而槽是為相應(yīng)特定信號(hào)調(diào)用的函數(shù)[20][21], 他們之間的關(guān)系如下圖所示: 圖 54 Qt中信號(hào)和槽的響應(yīng)機(jī)制理解了槽函數(shù)的意義之后,就可以對(duì)應(yīng)用程序進(jìn)行互動(dòng)操作的設(shè)計(jì)。首先,需要對(duì)ADD按鈕進(jìn)行功能性設(shè)計(jì)。ADD按鈕用來(lái)調(diào)出mydialog1窗口,而要完成這個(gè)功能,:private: Ui::MainWindow *ui。 myDialog1 my2。 //對(duì)象my2的定義對(duì)ADD的信號(hào)定義為click(),添加槽函數(shù)用來(lái)顯示mydialog1窗口:void MainWindow::on_pushButton_clicked(){ ()。}接下來(lái)就是對(duì)數(shù)據(jù)庫(kù)的互動(dòng)操作。我們知道要對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的操作就需要使用相應(yīng)的數(shù)據(jù)庫(kù)語(yǔ)言,而這些語(yǔ)言就是我們的槽函數(shù)所需要的程序。而QT給提供了一些操作數(shù)據(jù)庫(kù)的模型,這些模型是用來(lái)操作QSQLITE的并且可以完全脫離Sql語(yǔ)言,也就是說(shuō)即使沒有相關(guān)的數(shù)據(jù)庫(kù)語(yǔ)言的基礎(chǔ)知識(shí),只要學(xué)會(huì)使用這些模型的相關(guān)的庫(kù)與類的使用便可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行大部分簡(jiǎn)單的操作了。而本次設(shè)計(jì)使用了QT提供的QSqlTableModel這個(gè)與Tableview相配合使用的數(shù)據(jù)庫(kù)操作模型。該操作模型可以對(duì)數(shù)據(jù)表進(jìn)行添加,刪除,查詢等等工作日志記錄器所需要的各種操作。相關(guān)的程序代碼請(qǐng)見附錄()。完成各個(gè)文件的代碼添加修改以后,按Ctrl+R就可以對(duì)工程進(jìn)行編譯調(diào)試,調(diào)試結(jié)果如下所示:圖 55 應(yīng)用程序調(diào)試結(jié)果 設(shè)計(jì)成果將C:\Qt\\qt\workdate整個(gè)文件夾copy到Fedora9的/mnt目錄下,然后用上面所建立的交叉編譯環(huán)境進(jìn)行交叉編譯。最后把交叉編譯完成的程序下載到板子上并更改QT4腳本將workdate程序?yàn)槟J(rèn)運(yùn)行程序,如圖所示:圖 56 設(shè)置初始環(huán)境變量移植到開發(fā)板上的效果如下圖所示:圖 57 設(shè)計(jì)成果在開發(fā)板上能夠正確的運(yùn)行GUI應(yīng)用程序,QSQLITE數(shù)據(jù)庫(kù)可以正確的工作,應(yīng)用程序能夠?qū)?shù)據(jù)庫(kù)進(jìn)行添加、查找、刪除等各項(xiàng)事務(wù)性操作,在PC機(jī)上所能實(shí)現(xiàn)的功能在開發(fā)板上都可以正常使用,故而本次設(shè)計(jì)中所涉及的系統(tǒng)及Qt庫(kù)的移植,交叉編譯環(huán)境的建立都是正確無(wú)誤的。6 結(jié)論本文著重介紹了基于一個(gè)成熟的嵌入式GUI系統(tǒng)即Qt/Embedded所設(shè)計(jì)的圖形桌面程序,并在MINI2440開發(fā)板上得到了正確的實(shí)驗(yàn)結(jié)果。至此,本次的畢業(yè)設(shè)計(jì)我的工作即告完成。在此次畢業(yè)設(shè)計(jì)之前對(duì)于MINI2440開發(fā)板的了解幾乎為零,又對(duì)Linux操作系統(tǒng)的操作模式不甚熟悉,致使這次畢業(yè)設(shè)計(jì)在剛開始階段舉步維艱。當(dāng)花費(fèi)了大量的時(shí)間查閱資料,并且順利搭建好開發(fā)環(huán)境以后,又對(duì)QT Creater的開發(fā)語(yǔ)言C++感到極其陌生,對(duì)于面向?qū)ο蟮膽?yīng)用程序設(shè)計(jì)感到力不從心,但終于借助QT中文論壇非常多的既有資源及大量源代碼的閱讀(包括對(duì)Qt示例程序源代碼的閱讀),并且在導(dǎo)師的耐心指導(dǎo)和幫助下完成了此次的畢業(yè)設(shè)計(jì)。原本打算在工作日志記錄器中再添加一些如備忘錄相關(guān)的功能,既通過(guò)添加將來(lái)的工作記錄,到所記錄的時(shí)間后可以利用開發(fā)板上蜂鳴器以及Qt的提醒框來(lái)提示所應(yīng)該要完成的工作,使本次的GUI應(yīng)用程序功能更為完成,但因本人時(shí)間的緊迫以及能力方面的不足,這些功能最后也都未能實(shí)現(xiàn)。就目前而言,在嵌入式Linux圖形領(lǐng)域,還是有許多的問(wèn)題有待讓人們進(jìn)行完善,如:Qt/Embedded底層代碼比較凌亂,并且Qt本身是一個(gè)C++類庫(kù),用它編寫的程序運(yùn)行效率低等等問(wèn)題。特別是對(duì)比于Apple公司在Mac OS上的GUI程序,這些開源的GUI應(yīng)用程序都存在著運(yùn)行效率低下,代碼的優(yōu)化尚不完善等問(wèn)題,所以,Qt/Embedded的應(yīng)用程序其實(shí)比較著重于后期的對(duì)代碼的優(yōu)化以提高其運(yùn)行效率來(lái)迎合嵌入式產(chǎn)品對(duì)成本的苛刻要求。借助著世界開源社區(qū)的不懈努力,在Linux上的GUI程序必將呈幾何級(jí)數(shù)的成長(zhǎng),而且也會(huì)有越來(lái)越多的程序員會(huì)投身入這一行業(yè)。值此,我也希望會(huì)有更多的人愿意投入Linux/GNU的行業(yè)中去,為世界開源社區(qū)做出一些貢獻(xiàn),同時(shí)也可以讓中國(guó)的嵌入式產(chǎn)品能夠走向性能優(yōu)異并且是高可靠性的成熟產(chǎn)品,真正以成熟的面貌走向世界。 7 謝辭值此論文完成之際,衷心感謝我的導(dǎo)師金一鳴老師,在我大學(xué)四年期間給了我悉心的指導(dǎo),他淵博的學(xué)士和平易近人的態(tài)度讓我收益頗豐,衷心的感謝金老師。感謝李敏老師,作為我班的輔導(dǎo)員,在四年期間,給了我很多幫助。感謝2007屆電子科學(xué)與技術(shù)的全體同學(xué),和我一起度過(guò)了難忘的四年時(shí)光。感謝我的爸爸媽媽,將我培養(yǎng)成人,教育我,幫助我。最后,對(duì)審批此論文的老師表示深深地謝意。 8 參考文獻(xiàn)[1]潘巨龍. ARM9嵌入式Linux系統(tǒng)構(gòu)建與應(yīng)用:1~5[2]孫天澤. 嵌入式設(shè)計(jì)與Linux驅(qū)動(dòng)開發(fā)指南—基于ARM9處理器:10~15[3]王學(xué)龍. 嵌入式Linux系統(tǒng)設(shè)計(jì)與應(yīng)用. 北京:清華大學(xué)出版社,2001年8月. 70~77[4]鄒思軼. :70~77[5]陳莉君. Linux操作系統(tǒng)內(nèi)核分析. 北京:人民郵電出版社,2001年8月. 90~92[6]趙烔. . ,2004年5月21日. 22~26[7]rtornados. linux (一).,2006年9月19日. 1~2[8]王洪濤. . 北京:人民郵電出版社,2008年. 8~23[9]俞建新,賈世詳. 嵌入式應(yīng)用程序開發(fā)綜合實(shí)驗(yàn)9例. 151~155[10]張娟,雪蘭. 嵌入式Linux的GUI應(yīng)用程序的實(shí)現(xiàn). 計(jì)算機(jī)應(yīng)用,2003年,04期:115~117[11]北京亞嵌教育研究中心組編. 嵌入式GUI開發(fā)設(shè)計(jì)——基于MiniGUI. 北京:電子工業(yè)出版社,2009年5月. 31~36[12]陳沨,毛洋林,潘志浩. 基于嵌入式Linux的圖形界面顯示系統(tǒng)的設(shè)計(jì). 微計(jì)算機(jī)信息, 2004年,01期:1~6[13]基于SKY2440/TQ2440的Qt/Embedded應(yīng)用程序開發(fā)完全手冊(cè)(上)之24小時(shí)學(xué)會(huì)Qt/Embedded開發(fā). 116~130[14]Jasmin Blanchette,Mark Summerfield. C++ GUI Programming with Qt3. Publisher:Prentice Hall PTR,January 15 2004. 15~25[15]丁林松,黃麗琴. QT4圖形設(shè)計(jì)與嵌入式開發(fā). 北京:人民郵電出版社,2009年4月. 16~20[16]Trolltech Inc. Qt Reference Documentation . [17]友善之臂 MNI2440用戶手冊(cè). 7~20[18]S3C2440A 32BIT Rise Microprocessor User39。s Manual Preliminary Revision . SamSungElectronics,2004年. 77~80[19]S3C2440A 32位CMOS為控制器用戶手冊(cè). 2~7[20]于明,范書瑞,曾祥燁. ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程. 北京:電子工業(yè)出版社,2006年4月. 46~51[21],Qt Creator系列教程之QT數(shù)據(jù): 9 附錄主要程序代碼如下:: Project created by QtCreator 20110423T08:20:20QT += core guiQT += sqlTARGET = workdateTEMPLATE = appSOURCES += \ \ HEADERS += \ \ FORMS += \ :include include include QtGuiinclude QtSql//include QSqlQueryModelinclude QSqlTableModelinclude QTableViewinclude QSqlErrorMainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ uisetupUi(this)。 model = new QSqlTableModel(this)。 modelsetTable(workdata)。 modelsetEditStrategy(QSqlTableModel::OnManualSubmit)。 modelselect()。 //選取整個(gè)表的所有行 // modelremoveColumn(1)。 //不顯示name屬性列,如果這時(shí)添加記錄,則該屬性的值添加不上 uitableViewsetModel(model)。 // uitableViewsetEditTriggers(QAbstractItemView::NoEditTriggers)。 //使其不可編輯}MainWindow::~MainWindow(){ delete ui。}void MainWindow::on_pushButton_clicked(){ ()。}void MainWindow::on_pushButton_2_clicked(){ //QSqlTableModel *model = new QSqlTableModel。 QString Date = uidateEdittext()。 //modelsetTable(workda
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1