Qt信號(hào)和槽、常用函數(shù)及繪圖_第1頁(yè)
Qt信號(hào)和槽、常用函數(shù)及繪圖_第2頁(yè)
Qt信號(hào)和槽、常用函數(shù)及繪圖_第3頁(yè)
Qt信號(hào)和槽、常用函數(shù)及繪圖_第4頁(yè)
Qt信號(hào)和槽、常用函數(shù)及繪圖_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、12 信號(hào)和槽信號(hào)和槽的基本實(shí)現(xiàn)語(yǔ)句(掌握、重點(diǎn))信號(hào)和槽的連接規(guī)則(掌握、重點(diǎn))信號(hào)和槽的參數(shù)匹配規(guī)則(掌握、重點(diǎn)) 常用函數(shù)QWidget等類常用函數(shù)(熟悉) 繪圖個(gè)性化圖形繪制方法(掌握、重點(diǎn))常用QPainter類函數(shù)(熟悉)QPainter類實(shí)現(xiàn)個(gè)性化程序的方案(了解)3 信號(hào)和槽信號(hào)和槽的基本實(shí)現(xiàn)語(yǔ)句(掌握、重點(diǎn))信號(hào)和槽的連接規(guī)則(掌握、重點(diǎn))信號(hào)和槽的參數(shù)匹配規(guī)則(掌握、重點(diǎn)) 常用函數(shù)QWidget等類常用函數(shù)(熟悉) 繪圖個(gè)性化圖形繪制方法(掌握、重點(diǎn))常用QPainter類函數(shù)(熟悉)QPainter類實(shí)現(xiàn)個(gè)性化程序的方案(了解)4問題的提出 例子的窗體中,點(diǎn)擊“hide

2、”或“show”按鈕,為何窗口能做出相應(yīng)的響應(yīng)?問題的分析顯示功能對(duì)應(yīng)對(duì)象的show()函數(shù),隱藏功能對(duì)應(yīng)對(duì)應(yīng)對(duì)象的hide()函數(shù)點(diǎn)擊按鈕后執(zhí)行該函數(shù)即可問題的解決使用“信號(hào)和槽”機(jī)制完成該任務(wù)的過程:按下按鈕clicked()信號(hào)產(chǎn)生槽函數(shù)hide()被調(diào)用窗體隱藏5信號(hào)一個(gè)特定的標(biāo)識(shí),當(dāng)內(nèi)部發(fā)生某些事件或狀態(tài)改變時(shí)能夠被“發(fā)射”槽槽和普通的C+類的成員函數(shù)幾乎是一樣的唯一不同的是:槽可以和信號(hào)連接在一起,當(dāng)發(fā)射這個(gè)信號(hào)的時(shí)候,就會(huì)自動(dòng)調(diào)用這個(gè)槽作用 對(duì)象之間通信的高級(jí)接口事件出現(xiàn)時(shí),通過發(fā)送信號(hào)將與之關(guān)聯(lián)的槽函數(shù)激活,即執(zhí)行槽函數(shù)代碼67程序總結(jié):信號(hào)和槽的連接基本實(shí)現(xiàn)語(yǔ)句:QObjec

3、t:connect(a,SIGNAL(a_signal(int), b,SLOT(b_slot(int)Connect是靜態(tài)成員函數(shù),需要加QObject: 如果是QObject子類來調(diào)用則不用連接的兩個(gè)對(duì)象需要在連接前已經(jīng)存在,否則會(huì)報(bào)錯(cuò)a_signal和b_slot中只能有參數(shù)類型,而非具體的值 8一個(gè)信號(hào)可以連接多個(gè)槽Task 再創(chuàng)建一個(gè)label,點(diǎn)擊hide按鈕或show按鈕按鈕時(shí)兩個(gè)label能同時(shí)顯示或隱藏多個(gè)信號(hào)可以連接一個(gè)槽Task 在最初程序基礎(chǔ)上再創(chuàng)建一個(gè)按鈕,點(diǎn)兩個(gè)按鈕中任意一個(gè)都可以隱藏label一個(gè)信號(hào)可以與另外一個(gè)信號(hào)相連接Task 連接兩個(gè)按鈕的clicked信

4、號(hào)9要把信號(hào)成功連接到槽或另一個(gè)信號(hào),它們的參數(shù)必須具有相同的順序和類型注:參數(shù)匹配的檢查使用strcmp函數(shù),所以類型必須嚴(yán)格一致。如string和const string就不匹配例外:信號(hào)參數(shù)比槽多,多余參數(shù)被忽略如果類型不匹配,或信號(hào)和槽不存在,編譯時(shí)不會(huì)報(bào)錯(cuò),運(yùn)行時(shí)會(huì)有警告10練習(xí)1:使用滑塊控制LCD上的數(shù)字發(fā)生變化練習(xí)2:使用按鈕控制動(dòng)畫的暫停和播放11在designer中創(chuàng)建一個(gè)按鈕,一個(gè)標(biāo)簽選擇“編輯/信號(hào)和槽”拖動(dòng)連接按鈕和標(biāo)簽,彈出信號(hào)和槽選擇對(duì)話框,觀察有哪些信號(hào)和槽窗體/預(yù)覽,查看效果12問題的提出 之前是使用Qt類中已定義的信號(hào)和槽,如果是自己定義實(shí)現(xiàn)的類,如何加入信

5、號(hào)和槽機(jī)制,實(shí)現(xiàn)自己想要的功能?問題的分析聲明自定義的信號(hào),直接使用,無(wú)需實(shí)現(xiàn)聲明自定義的槽,跟類成員函數(shù)一樣實(shí)現(xiàn)問題的解決聲明時(shí)分別加入slots和signals關(guān)鍵字即可使用信號(hào)時(shí): emit my_order(angle)13類的聲明開始處加入Q_OBJECT宏,標(biāo)準(zhǔn)C+不支持,Qt通過moc(Meta Object Compiler)工具自動(dòng)將其轉(zhuǎn)為C+代碼槽函數(shù)和普通C+類成員函數(shù)一樣實(shí)現(xiàn),但是當(dāng)做真正的槽使用的時(shí)候訪問權(quán)限的定義沒有任何效果信號(hào)只需聲明無(wú)需實(shí)現(xiàn),定義的訪問權(quán)限沒有意義必須把類定義從實(shí)現(xiàn)文件中分離出來并放到頭文件中。141516程序總結(jié):自定義的類一般可以從QWidg

6、et類繼承信號(hào)和槽都是類的成員函數(shù)自定義槽加關(guān)鍵字slots自定義信號(hào)加關(guān)鍵字signals使用自定義信號(hào): emit my_signal(參數(shù)列表)17練習(xí)1:用兩個(gè)按鈕分別控制動(dòng)畫的暫停和繼續(xù)播放練習(xí)2:創(chuàng)建一個(gè)按鈕和LCD,每次點(diǎn)擊按鈕,LCD上的數(shù)字值加1練習(xí)3:做一個(gè)簡(jiǎn)單的猜數(shù)字游戲。內(nèi)部規(guī)則等獨(dú)立為一個(gè)類,該類的構(gòu)造函數(shù)中隨機(jī)產(chǎn)生目標(biāo)值,有槽函數(shù)接收用戶猜測(cè)的數(shù)字,發(fā)信號(hào)表明猜測(cè)的結(jié)果18 信號(hào)和槽信號(hào)和槽的基本實(shí)現(xiàn)語(yǔ)句(掌握、重點(diǎn))信號(hào)和槽的連接規(guī)則(掌握、重點(diǎn))信號(hào)和槽的參數(shù)匹配規(guī)則(掌握、重點(diǎn)) 常用函數(shù)QWidget等類常用函數(shù)(熟悉) 繪圖個(gè)性化圖形繪制方法(掌握、重點(diǎn))

7、常用QPainter類函數(shù)(熟悉)QPainter類實(shí)現(xiàn)個(gè)性化程序的方案(了解)19QWidget類: setEnabled(bool)控件使能 setDisabled(bool)輸入使能 width()窗口寬度 height()窗口高度 close()關(guān)閉 show()顯示 hide()隱藏QFont類: QFont font(Helvetica,12,QFont:Bold) setFont(font)字體設(shè)置方式20 QLCDNumber類: setNumDigits()位數(shù)設(shè)置 display()內(nèi)容顯示 QTimer類: start()啟動(dòng)定時(shí) timeout()到時(shí)信號(hào) QStrin

8、g類: toInt()字符串轉(zhuǎn)整數(shù) toAScii()16位字符串轉(zhuǎn)8位 number()字符串轉(zhuǎn)數(shù)字 fromAscii()8位字符串轉(zhuǎn)16位21 信號(hào)和槽信號(hào)和槽的基本實(shí)現(xiàn)語(yǔ)句(掌握、重點(diǎn))信號(hào)和槽的連接規(guī)則(掌握、重點(diǎn))信號(hào)和槽的參數(shù)匹配規(guī)則(掌握、重點(diǎn)) 常用函數(shù)QWidget等類常用函數(shù)(熟悉) 繪圖個(gè)性化圖形繪制方法(掌握、重點(diǎn))常用QPainter類函數(shù)(熟悉)QPainter類實(shí)現(xiàn)個(gè)性化程序的方案(了解)22Qt事件處理的意義作為GUI界面,需要做很多和用戶交互的事情。事件(event)很大程度上就是響應(yīng)用戶動(dòng)作Qt的事件處理機(jī)制事件產(chǎn)生時(shí),調(diào)用event()函數(shù),由它根據(jù)事件

9、類型調(diào)用相應(yīng)的事件處理器,如mousePressEvent()、paintEvent()等所以約定的事件發(fā)生時(shí)對(duì)應(yīng)的函數(shù)自動(dòng)被調(diào)用。通過重寫該函數(shù)對(duì)應(yīng)代碼實(shí)現(xiàn)相應(yīng)功能 23繪圖事件的意義 常用的控件外,怎樣來一些個(gè)性的外觀,比如最基本的矩形、圓等;重新實(shí)現(xiàn)paintEvent()函數(shù)可以繪制個(gè)性化控件,更能定制窗口部件,隨心所欲控制外觀;繪圖事件程序的處理流程代碼放置在paintEvent()中,即重新實(shí)現(xiàn)繪圖事件處理器;創(chuàng)建QPaint類的對(duì)象,調(diào)用相關(guān)QPainter類的函數(shù)實(shí)現(xiàn)個(gè)性化繪制;24Qt的二維圖形繪制基于QPainter類 可以繪制幾何形狀(點(diǎn)、線、矩形、橢圓等) 可以繪制像素

10、映射、圖形和文字 高級(jí)特性:像素混合、漸變填充、平移、旋轉(zhuǎn)等QPainter類的使用 畫筆(setPen):畫線和邊緣 畫刷(setBrush):填充幾何形狀的圖案 字體(setFont):用來繪制文字,字體可選252627程序總結(jié):重新實(shí)現(xiàn)void paintEvent(QPaintEvent *)函數(shù)paintEvent函數(shù)中定義QPainter對(duì)象使用該對(duì)象調(diào)用相關(guān)函數(shù),實(shí)現(xiàn)繪圖,繪圖相關(guān)的操作都需要在該函數(shù)體中執(zhí)行28程序總結(jié): 窗口視口轉(zhuǎn)換模式,相當(dāng)于把一張電子圖片放到大小不同的顯示器上去顯示 QPainter:setWindow(x,y,width,height)設(shè)置窗口 QPai

11、nter:setViewport(x,y,width,height)設(shè)置視口29QPainter類常用函數(shù) drawEllipse()畫橢圓 drawRect()畫矩形 drawLine()畫直線 drawPicture()畫圖片 drawImage() 繪圖片 drawPixmap()繪圖片 drawText()繪文本 fillRect()填充矩形30QPainter類常用函數(shù) rotate()角度旋轉(zhuǎn) translate()坐標(biāo)變換 save()畫筆保存 restore()畫筆恢復(fù) setBrush()設(shè)置畫刷 setPen()設(shè)置畫筆 setFont()設(shè)置字體31 信號(hào)和槽信號(hào)和槽的基本實(shí)現(xiàn)語(yǔ)句(掌握、重點(diǎn))信號(hào)和槽的連接規(guī)則(掌握、重點(diǎn))信號(hào)和槽的參數(shù)匹配規(guī)則(掌握、重點(diǎn))

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論