




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式實(shí)驗(yàn)報(bào)告部分基于QT實(shí)現(xiàn)一個(gè)簡易畫圖板姓名:馮建建班級:軟件71學(xué)號:07161007學(xué)院:軟件學(xué)院日期:2010-10-25實(shí)驗(yàn)?zāi)康?,了解并掌握Qt集成開發(fā)環(huán)境下使用QtDesigner開發(fā)圖形界面程序的流程和相關(guān)操作;2,了解并掌握Qt的信號槽和信號傳遞機(jī)制,并通過具體應(yīng)用加深理解;3,了解并掌握使Qt應(yīng)用程序支持中文或國際化的方法,并在本次實(shí)驗(yàn)中使用;4,了解并掌握QPainter的translate、shear等庫函數(shù)的使用方法和Widget類的使用方法,并通過本次實(shí)驗(yàn)加深理解;5,掌握在QtDesigner界面上為菜單項(xiàng)添加工具欄按鈕、創(chuàng)建相應(yīng)槽函數(shù)的方法;6,了解并掌握使用
2、雙緩沖機(jī)制繪圖的方法。實(shí)驗(yàn)環(huán)境操作系統(tǒng):Windows7應(yīng)用軟件:QtCreator開發(fā)平臺:qt-sdk-win-opensource-2009.04程序流程圖:四、核心源代碼mainwindow.cpp的內(nèi)容(實(shí)現(xiàn)菜單項(xiàng)的功能和繪圖功能的調(diào)用)繪圖板主窗口大小設(shè)為/獲得圖片的大小,然后更改的大小(打開文件將畫布添加到對象的背景色設(shè)為初始化大小設(shè)為將加入到主窗口的中心區(qū)未命名畫筆顏色組合框填充顏色組合框保存文件圖片已經(jīng)改變,是否保存?另存為新建菜單打開菜單保存菜單另存為菜單退出菜單關(guān)閉事件打印菜單放大菜單獲得圖片的大小,然后更改的大小縮小菜單還原菜單旋轉(zhuǎn)菜單拉伸菜單清空菜單繪圖工具欄菜單先繪
3、制一個(gè)的小圖片,然后給其涂色的圖標(biāo)黑色再用該圖片作為組合框條目白色紅色綠色藍(lán)色無顏色黃色組合框無矩形利用直線橢圓格組合框?qū)嵕€即透明選擇圖形類中的枚舉變量畫筆風(fēng)虛線畫筆線寬組合框畫筆顏色組合框填充顏色組合框關(guān)于對話框的實(shí)現(xiàn)選擇直線利用類中的枚舉變量選擇無選擇矩形選擇橢圓選擇實(shí)線選擇虛線paintarea.cpp的內(nèi)容(實(shí)現(xiàn)雙緩沖繪圖并提供繪圖接口的調(diào)用)用32位顏色畫布的初始化大小設(shè)為畫2布5初5始,化2背5景5色,使2用5白5色)如果正在繪制特殊圖形,則顯示臨時(shí)繪圖區(qū)上的內(nèi)容新建臨時(shí)的I利用它進(jìn)行旋轉(zhuǎn)操作只會復(fù)制圖片上的內(nèi)容,不會復(fù)制坐標(biāo)系統(tǒng)完成0旋;轉(zhuǎn)后/將/角度值重新設(shè)為0當(dāng)鼠標(biāo)左鍵按下獲
4、得鼠標(biāo)指針的當(dāng)前坐標(biāo)作為起始坐標(biāo)如果鼠標(biāo)左鍵按著的同時(shí)移動鼠標(biāo)獲得鼠標(biāo)指針的當(dāng)前坐標(biāo)作為終止坐標(biāo)如果不進(jìn)行特殊圖形繪制,則直接在上繪制如果繪制特殊圖形,則在臨時(shí)繪圖區(qū)上繪制每次繪制前用上一次中的圖片對其進(jìn)行填充在鼠如果鼠標(biāo)左鍵釋放上繪圖由起始坐標(biāo)和終止坐標(biāo)繪制直線讓終止坐標(biāo)變?yōu)槠鹗甲鴺?biāo)進(jìn)行更新界面顯示,可引起窗口重繪事件,重繪窗口因?yàn)榈谋尘吧妙愋偷念伾赃@里進(jìn)行了一下轉(zhuǎn)換實(shí)現(xiàn)了文件存儲用現(xiàn)在的畫布背景色進(jìn)行填充五、實(shí)驗(yàn)步驟第一部分:設(shè)計(jì)界面一設(shè)計(jì)菜單在QtCreator中新建Qt4GuiApplication工程,我這里使用的工程名為paint,使用默認(rèn)的QMainWindow作為主窗
5、口。為了讓程序中可以使用中文,我們先在main.cpp中加入頭文件#include,并加入下面一行代碼:QTextCodec:setCodecForTr(QTextCodec:codecForLocale();3打開mainwindow.ui,先設(shè)計(jì)菜單。依次是文件菜單,編輯菜單,工具菜單和幫助菜單。其內(nèi)容分別如下:文件I編輯叭工新逹晶二項(xiàng)打開辺帝TOC o 1-5 h z保存請另存為(A)鞘打印(U亀退出(XI諸TypmHereAddSeparator工具“虛線實(shí)線Type;HereAddSep:eq-ator工具(II幫助繪閣工具欄4.向工程中添加資源文件,向其中添加要使用的菜單圖標(biāo)。添加
6、完后記著保存一下資源文件,不然的話,在資源管理器中可能看不到添加的圖標(biāo)。5打開動作編輯器ActionEditor,編輯已添加的菜單動作,為菜單動作添加快捷鍵、快捷圖標(biāo)和狀態(tài)欄提示,具體操作很簡單,這里不作贅述,最終設(shè)置完成后結(jié)果如下圖:NamQ蠲欝33呎,叫0宀?2-literCtrl+HCtrl+OCtrl+SCtrl+PCtrl+UpCtrl+DownCtrl+HoniHCtrl+LeftCtrl+RightCtrl+DelToolTip匕如下圖所示:UfvE-QT(O$為(?厲工軍建開存存印出丈小原轉(zhuǎn)伸空圖于線新打保另打退放縮還旄拉m繪關(guān)直bd虛線二.添加繪圖工具欄形圓線鏡我們這里的繪圖
7、工具欄使用的是一種叫做Dock的窗口,它與其它窗口的不同就是它可以在其父窗口中浮動,也可以停靠在父窗口的邊界,就像一個(gè)工具欄一樣。1.我們在左邊的部件欄中找到DockWidget,將其拖入到設(shè)計(jì)區(qū)。添加后它默認(rèn)在左邊框上停靠著,設(shè)置其windowTitle屬性為“畫圖工具”,并在其上面添加如下圖所示的標(biāo)簽、spinbox和combobox:其中,畫筆線寬下的部件為SpinBox,其屬性中的objectName為penWidthSpinBox,屬性欄最下面的minimum屬性改為1,即最小值為1。其余部件均為組合框ComboBox,objectName依次為:選擇圖形:shapeComboBox
8、畫筆類型:penStyleComboBox畫筆顏色:penColorComboBox填充顏色:brushColorComboBox-dockii1idget:do匚kWidgetCDiitEntsbrushColorComboBoklabellabel_2label_3labelslabel5tjQDockWidgetpQWidgetjCombOBok:ULabelGQLabelQLabelQQLabelVQLabelpenColorComboBoxnfyComtnjBaKpenStyleComboBoxQCombuBoxp燈卅idthSpinEox三QSpinJioxshapeCornboB
9、okyComboBoK2.為combobox“選擇圖形”和“畫筆類型”添加條目,結(jié)果如下圖:三添加畫布因?yàn)楫嫴际钦嬲龑?shí)現(xiàn)繪圖功能的,所以我們新建一個(gè)類來實(shí)現(xiàn)所有跟繪圖有關(guān)的功能這里先進(jìn)行操作,對于一些內(nèi)容到后面我們會詳細(xì)解釋的。1.往工程中添加新的C+類,類名為PaintArea,以QWidget作為基類,如下所示:2.在paintArea.h中聲明對象和函數(shù)。判斷畫布內(nèi)容是否被更改過保存圖片打開圖片放大縮小還_原1旋轉(zhuǎn)拉伸清空設(shè)置畫筆風(fēng)格設(shè)置畫筆寬度設(shè)置畫筆顏色設(shè)置填充顏色枚舉變量,幾個(gè)圖形的選擇沒有圖形直線矩形橢圓設(shè)置要繪制的圖形重繪事件鼠標(biāo)按下事件鼠標(biāo)移動事件鼠標(biāo)釋放事件進(jìn)行繪制類對象,
10、用于在其上繪圖顏色對象,存儲的背景色定義兩個(gè)坐標(biāo)對象存放鼠標(biāo)指針的前后兩個(gè)坐標(biāo)標(biāo)志畫布是否被更改過縮放量角度拉伸量畫筆顏色填充顏色畫筆寬度畫筆風(fēng)格當(dāng)前圖形臨時(shí)繪圖區(qū)是否在繪制特殊圖形在中的構(gòu)造函數(shù)里初始化對象并實(shí)現(xiàn)相應(yīng)繪圖使用的函數(shù)功能。(源代碼參見關(guān)鍵代碼)第二部分:實(shí)現(xiàn)基本功能我們用打開上次的工程,即打開工程文件夾中的文件。一.添加設(shè)置畫布的對話框首先,因?yàn)樾陆ó嫴紩r(shí),我們想要可以設(shè)置畫布的大小和背景顏色,所以在開始講解之前,我們先添加一個(gè)對話框,用來讓用戶進(jìn)行相關(guān)設(shè)置。我們添加新的,選擇帶有按鈕的對話框作為模板,如下圖所示。然后類名使用D.我們在文件中聲明函數(shù)和對象。.我們將其界面設(shè)計(jì)如
11、下。.我們在文件中聲明函數(shù)和對象。.我們在文件中聲明函數(shù)和對象。為,s修改,點(diǎn)擊它顯其中“寬”后的,將其修改為,修改其為;修改“高”后的,將其改為其為,為;“背景顏色”后的部件是一個(gè).我們在文件中聲明函數(shù)和對象。示顏色對話框,和一個(gè),用于顯示顏色對話框返回的顏色。用于返回畫布的寬用于返回畫布的高用于返回畫布的背景色.然后在用于保存畫布的背景色中實(shí)現(xiàn)相應(yīng)函數(shù)。從顏色對話框獲得顏色如果得到的是可用的顏色i11erCheckableToolTipText5實(shí)現(xiàn)菜單項(xiàng)的功能最后我們在主界面中進(jìn)入新建菜單的事件,如下圖所示。3U5-20回0口打開劎*保存妙另存毬)tTSnr*pShortcutNew.E
12、dit.Gotoslot.l-.r顯示這個(gè)顏色新逹(N)打開血1保存(S)另存肯(A)tTfnrpi然后就可以編寫菜單項(xiàng)的實(shí)現(xiàn)槽函數(shù),其他菜單項(xiàng)的實(shí)現(xiàn)方法一樣,具體源代碼參見關(guān)鍵源代碼的內(nèi)容。第三部分:雙緩沖繪圖如果不使用雙緩沖繪圖,實(shí)驗(yàn)會有以下幾個(gè)問題:畫布放大后,滾動條不跟著放大。繪制直線,矩形等圖形時(shí)有重影。畫布進(jìn)行放大,旋轉(zhuǎn)等操作后無法正常繪圖。應(yīng)用坐標(biāo)系的知識,在繪制圖片時(shí),當(dāng)進(jìn)行放大、拉伸等操作時(shí),要改變相應(yīng)的坐標(biāo)值。具體過程參見相關(guān)資料,這里不作贅述。利用兩個(gè)對象,一個(gè)保存臨時(shí)圖像,一個(gè)保存最終圖像,這樣實(shí)現(xiàn)交互繪圖的方法就叫做雙緩沖繪圖。第四部分:移植到開發(fā)板1使用或盤等工具將工程文件夾拷貝到虛擬機(jī)中,并在虛擬機(jī)終端上配置環(huán)境變量(配置方法上課已經(jīng)講過,不再說明),并使用“”、“”、“”等指令編譯出可以在開發(fā)板上運(yùn)行的可執(zhí)行程序。2將可執(zhí)行程序和相應(yīng)的資源(如圖片)一起拷貝到開發(fā)板上(在此之前需要在開發(fā)板上配置支持庫和中文庫還有環(huán)境變量,具體過程和需要的資源老師已經(jīng)講
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 磨難的中考語文作文
- 纖維板生產(chǎn)中的員工培訓(xùn)與管理考核試卷
- 智能電動牙刷智能識別考核試卷
- 生活就像一首歌初三語文作文
- 殘疾人座車交通事故應(yīng)急預(yù)案考核試卷
- 描寫巴黎的初二語文作文
- 紡織品在包裝行業(yè)的應(yīng)用與發(fā)展考核試卷
- 電力施工項(xiàng)目施工圖紙識別考核試卷
- 發(fā)熱患者的護(hù)理指南
- 護(hù)理不良事件報(bào)告及管理制度 2
- 肺脹病(慢性阻塞性肺疾病)中醫(yī)臨床路徑
- 智能桌椅商業(yè)計(jì)劃書
- 供應(yīng)商年度評價(jià)內(nèi)容及評分表
- 公務(wù)車輛定點(diǎn)加油服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 強(qiáng)化學(xué)習(xí)與聯(lián)邦學(xué)習(xí)結(jié)合
- 泵檢驗(yàn)標(biāo)準(zhǔn)及方法
- 水土保持學(xué)試卷 答案
- 變電站工程施工危險(xiǎn)點(diǎn)辨識及預(yù)控措施(匯編)
- 關(guān)于新能源汽車的論文10000字
- 口腔檢查-口腔一般檢查方法(口腔科課件)
- 中型水力發(fā)電廠電氣部分初步設(shè)計(jì)
評論
0/150
提交評論