題外話
?????? 按照我之前的規劃,我讓江俊良同學撰寫了關于QT中信號與槽的相關技術文檔并在周一發表。江俊良同學的所寫的文檔,簡單易懂,大家閱讀之后都一致好評,在此值得肯定,愿再接再厲。3月14日的任務目的在于加深你們對于QT中信號與槽的理解,所以想簡單的讓你們學會去使用信號與槽,故給出了如下需求,讓大家通過編程實現
Let’s Do It Together
step1 創建界面
這一步很簡單,我們打開QT,通過設計師模式,簡單的拖拽一個LineEdit和PushButton,并做下垂直或水平布局(隨意),效果如下圖:
Step2 聲明槽函數
進入MainWindow.h(我創建的是默認的mainwindow類,你們如果在創建時自定義了類名,那么就進入“你創建的類名.h”),在類中我們添加一種QT獨有的類的聲明標識符:"private slots:"
如圖,我聲明了一個void 類型的名為ButtonSlot()的槽函數,接下來我們定義槽函數如何去實現功能。
按下F4我們可快速切換到Mainwindow.cpp,并補出槽函數的外體輪廓:
Step3 在槽函數中實現功能
我們的目的在于當Button被點擊后,彈出一個對話框,對話框顯示出LineEdit的輸入。
分以下幾步實現:
1.使用QMessageBox類掉出一個對話框。
QMessageBox類之后我們會常用到,需要添加#include<QMessageBox>這個編譯預處理命令。在此,先給大家一個簡單的使用示范,你們之后再仔細了解。QMessage類中有一個靜態成員函數Information.這個函數會彈出一個對話窗口,用于提示一些信息。既然是靜態成員函數,那么我們可以無需創建對象便可直接調用,調用方法為:QMessageBox::Information(當前父窗口,窗口標題,信息內容);其中第一個參數為我們當前的父窗口,即Mainwindow類所創建的負窗口,所以我們可以直接寫this指針。窗口標題和信息內容都是是QString類型。窗口標題我們可以隨意填寫,用雙引號括起來即可臨時賦值一個字符串,或者用tr("")的方式。
2.如何獲取LineEdit中的字符串
這個無需多講,一行代碼即搞定:
顯然,LineEdit類中有text()這個成員函數,它返回一個QString類型的字符串。
3.建立槽與信號的連接
4.在構造函數中更改窗口標題
寫入“ASA”即可。
這里,就大功告成了,ctrl+R跑起來吧!