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

正文內(nèi)容

基于嵌入式gui的工作日志記錄器的設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)(doc畢業(yè)設(shè)計(jì)論文)-閱讀頁

2025-07-12 20:39本頁面
  

【正文】 ,提供對(duì)文件的分層組織形式、數(shù)據(jù)緩沖及文件存取權(quán)限的控制。Linux系統(tǒng)中的文件不僅包括普通的文件和目錄,每個(gè)和設(shè)備相關(guān)的實(shí)際實(shí)體也都被映射為一個(gè)文件,例如磁盤、打印機(jī)、終端等等,這樣的設(shè)備文件又稱為特殊文件。在構(gòu)建文件系統(tǒng)前,需要首先進(jìn)行相關(guān)驅(qū)動(dòng)的移植,例如Nand Flash驅(qū)動(dòng)的完善、LCD驅(qū)動(dòng)的移植、觸摸屏驅(qū)動(dòng)的移植等等[19]。1. 解壓busyboxcd /mnt/hgfs/sharetar –zxvf –C /opt/studyarm進(jìn)入源碼,修改Makefile 文件:cd /opt/studyarm/2. 修改:CROSS_COMPILE ?=armlinux //第164 行ARCH ?=arm //第189 行3. 配置busybox提示:友善之臂已經(jīng)在光盤中提供了busybox 的源代碼包,在光盤\linux 目錄中,文件名為:( 章節(jié)介紹了解壓安裝的方法),解壓后里面包含了友善之臂提供的缺省配置文件:fa_config(輸入命令“cp .config”可以調(diào)用該配置),一般用戶直接使用缺省文件就可以了,這樣生成的busybox 和root_qtopia 中的是完全一致的[17]。在“/opt/EmbedSky/”建立一個(gè)“”文件夾,復(fù)制編譯出來的busybox“bin”的目錄、“sbin”目錄、“usr”目錄和“l(fā)inuxrc”到新建“”目錄下,然后新建“dev”、“etc”、“home”、“l(fā)ib”、“mnt”、“opt”、“proc”、“root”、“sys”、“tmp”、“var”和“web”目錄,同時(shí)在原有的“usr”目錄下新建一個(gè)“l(fā)ib”和“share”目錄。不過mdev是調(diào)用init進(jìn)程來啟動(dòng)的,在使用mdev構(gòu)建“dev”目錄前,init進(jìn)程需要使用到“/dev/console”和“/dev/null”這兩個(gè)設(shè)備文件,所以,需要在制作文件系統(tǒng)時(shí)靜態(tài)創(chuàng)建這兩個(gè)設(shè)備文件,方法如下:cd /opt/EmbedSky/mknod console c 5 1mknod null c l 3如果不創(chuàng)建這兩個(gè)設(shè)備文件,在文件系統(tǒng)啟動(dòng)時(shí)會(huì)出現(xiàn)“Warning:unable to open an initial console。(2)etc目錄:用來存放系統(tǒng)的配置文件。(4)lib目錄:用來存放常用的庫文件,獲取庫文件的方法();cd /opt/EmbedSky/cp –f/opt/EmbedSky/*.so* lib –arm –f lib/libwv* lib/libuniconf*這里拷貝了常用的庫文件,如果需要特殊的庫,需要再從相應(yīng)的位置復(fù)制過來(5)mnt目錄:一般用來掛載的U盤等外設(shè),這里建立兩個(gè)目錄“udisk”和“sd”,分別用來掛載U盤和SD卡。(7)“proc”目錄:提供一些目錄和虛擬文件系統(tǒng)。(9)“sys”目錄:Mdev可能會(huì)在下面建立某些文件。(11)“var”目錄:存放臨時(shí)文件的目錄。(13)“usr/bin/”目錄:拷貝相應(yīng)的rz和sz文件到該目錄下,以實(shí)現(xiàn)使用超級(jí)終端的zmodem進(jìn)行接收和發(fā)送文件的功能,在開發(fā)板的串口終端使用方法如下:$rz 然后點(diǎn)擊右鍵打開zmodem就可以向開發(fā)板發(fā)送文件了。到這里,文件系統(tǒng)的基本框架就大體完成了,然后使用制作yaffs的文件系統(tǒng)的軟件,把它做出yaffs文件系統(tǒng)格式的鏡像就可以使用了。If語句的作用:判斷是否有/etc/pointercal文件,如果是,則直接運(yùn)行desktop1程序,及自己寫的桌面程序,否則運(yùn)行觸摸屏校驗(yàn)程序。5 工作日志記錄器的設(shè)計(jì)本次畢業(yè)設(shè)計(jì)我需要設(shè)計(jì)一個(gè)圖形界面的工作日志記錄器。所以我決定用QT自帶的小型數(shù)據(jù)庫QSqlite來保存工作數(shù)據(jù),并且能對(duì)這些數(shù)據(jù)進(jìn)行查找,刪除,修改等等簡單的操作。使用Qt設(shè)計(jì)一個(gè)程序分為如下兩部:1. 圖形用戶界面設(shè)計(jì);2. 應(yīng)用程序功能設(shè)計(jì)。然后,打開應(yīng)用程序,Ctrl+N新建工程。然后添加各項(xiàng)文件,如下圖所示:圖 51 應(yīng)用程序工程結(jié)構(gòu)其中mainwindow為工作日志記錄器的主窗口,而mydialog1為添加工作日志的添加窗口。但是QT Creater也提供了很多種View插件,譬如有List view,tree view,table view,Column view這四種,并且這些在ui上面是一樣的。在本文開頭已經(jīng)簡單介紹過本次設(shè)計(jì)準(zhǔn)備使用QSQLITE來實(shí)現(xiàn)工作日志的存儲(chǔ)工作,故而QSQLITE在QT中提供了QSqlQueryModel這個(gè)需要QSQLITE+Table View配合使用的模型,所以UI窗口上用Table view來顯示數(shù)據(jù)庫中的數(shù)據(jù)表就這么定了下來。根據(jù)以上需求,設(shè)計(jì)應(yīng)用程序主窗口如下:圖 52 應(yīng)用程序主窗口GUI其中包括了Date edit,pushbotton,Table view等幾個(gè)插件。至此為止,本次設(shè)計(jì)的應(yīng)用程序UI設(shè)計(jì)就完成了。并且在下次打開的時(shí)候能夠在mainwindow的Table view插件中顯示出來。QSqlite是QT自帶的一個(gè)小型嵌入式數(shù)據(jù)庫,它不需要額外的驅(qū)動(dòng)支持,只需要在QT應(yīng)用程序中添加相關(guān)代碼就可以正確使用這個(gè)數(shù)據(jù)庫。 ()。 在正確鏈接好數(shù)據(jù)庫之后,還需要?jiǎng)?chuàng)建一個(gè)相應(yīng)的五列(分別為ID,Date,Start,End,Conent)數(shù)據(jù)庫數(shù)據(jù)表workdata,創(chuàng)建數(shù)據(jù)表的代碼如下: QSqlQuery query。 }當(dāng)完成數(shù)據(jù)庫的鏈接以后,就需要使用上節(jié)提供的按鈕來進(jìn)行應(yīng)用程序的互動(dòng)操作了。Qt中,信號(hào)和槽是用于對(duì)象之間的通信。在Qt中使用的信號(hào)和槽,信號(hào)是一個(gè)特定的事件的發(fā)生(Qt Creater的窗口部件中有許多預(yù)定義的信號(hào)供選擇)。首先,需要對(duì)ADD按鈕進(jìn)行功能性設(shè)計(jì)。 myDialog1 my2。}接下來就是對(duì)數(shù)據(jù)庫的互動(dòng)操作。而QT給提供了一些操作數(shù)據(jù)庫的模型,這些模型是用來操作QSQLITE的并且可以完全脫離Sql語言,也就是說即使沒有相關(guān)的數(shù)據(jù)庫語言的基礎(chǔ)知識(shí),只要學(xué)會(huì)使用這些模型的相關(guān)的庫與類的使用便可以對(duì)數(shù)據(jù)庫進(jìn)行大部分簡單的操作了。該操作模型可以對(duì)數(shù)據(jù)表進(jìn)行添加,刪除,查詢等等工作日志記錄器所需要的各種操作。完成各個(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)行交叉編譯。6 結(jié)論本文著重介紹了基于一個(gè)成熟的嵌入式GUI系統(tǒng)即Qt/Embedded所設(shè)計(jì)的圖形桌面程序,并在MINI2440開發(fā)板上得到了正確的實(shí)驗(yàn)結(jié)果。在此次畢業(yè)設(shè)計(jì)之前對(duì)于MINI2440開發(fā)板的了解幾乎為零,又對(duì)Linux操作系統(tǒng)的操作模式不甚熟悉,致使這次畢業(yè)設(shè)計(jì)在剛開始階段舉步維艱。原本打算在工作日志記錄器中再添加一些如備忘錄相關(guān)的功能,既通過添加將來的工作記錄,到所記錄的時(shí)間后可以利用開發(fā)板上蜂鳴器以及Qt的提醒框來提示所應(yīng)該要完成的工作,使本次的GUI應(yīng)用程序功能更為完成,但因本人時(shí)間的緊迫以及能力方面的不足,這些功能最后也都未能實(shí)現(xiàn)。特別是對(duì)比于Apple公司在Mac OS上的GUI程序,這些開源的GUI應(yīng)用程序都存在著運(yùn)行效率低下,代碼的優(yōu)化尚不完善等問題,所以,Qt/Embedded的應(yīng)用程序其實(shí)比較著重于后期的對(duì)代碼的優(yōu)化以提高其運(yùn)行效率來迎合嵌入式產(chǎn)品對(duì)成本的苛刻要求。值此,我也希望會(huì)有更多的人愿意投入Linux/GNU的行業(yè)中去,為世界開源社區(qū)做出一些貢獻(xiàn),同時(shí)也可以讓中國的嵌入式產(chǎn)品能夠走向性能優(yōu)異并且是高可靠性的成熟產(chǎn)品,真正以成熟的面貌走向世界。感謝李敏老師,作為我班的輔導(dǎo)員,在四年期間,給了我很多幫助。感謝我的爸爸媽媽,將我培養(yǎng)成人,教育我,幫助我。 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。 model = new QSqlTableModel(this)。 modelsetEditStrategy(QSqlTableModel::OnManualSubmit)。 //選取整個(gè)表的所有行 // modelremoveColumn(1)。 // uitableViewsetEditTriggers(QAbstractItemView::NoEditTriggers)。}void MainWindow::on_pushButton_clicked(){ ()。 QString Date = uidateEdittext()。 modelsetFilter(QObject::tr(Date = 39。).arg(Date))。 //顯示結(jié)果 //uitableViewsetModel(model)。 //重新關(guān)聯(lián)表 modelselect()。 //開始事務(wù)操作 if (modelsubmitAll()) { modeldatabase().mit()。 //回滾 QMessageBox::warning(this, tr(tableModel), tr(sqlite error: %1) .arg(modellastError().text()))。}void MainWindow::on_pushButton_7_clicked(){ int curRow = uitableViewcurrentIndex().row()。 //刪除該行 int ok = QMessageBox::warning(this,tr(delet!),tr(sure delet), QMessageBox::Yes,QMessageBox::No)。 //如果不刪除,則撤銷 } else modelsubmitAll()。 //獲得表的行數(shù) //int id = rowNum。 //添加一行 // modelsetData(modelindex(rowNum,0),id)。 //可以直接提交//}void MainWindow::on_action_Undo_triggered(){ modelrevertAll()。 model = new QSqlTableModel(this)。 modelsetEditStrategy(QSqlTableModel::OnManualSubmit)。 //選取整個(gè)表的所有行 // modelremoveColumn(1)。 // uitableViewsetEditTriggers(QAbstractItemView::NoEditTriggers)。}void MainWindow::on_pushButton_clicked(){ ()。 QString Date = uidateEdittext()。 modelsetFilter(QObject::tr(Date = 39。).arg(Date))。 //顯示結(jié)果 //uitableViewsetModel(model)。 //重新關(guān)聯(lián)表 modelselect()。 //開始事務(wù)操作
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1