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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論