題外話
?????? 按照我之前的規(guī)劃,我讓江俊良同學(xué)撰寫了關(guān)于QT中信號(hào)與槽的相關(guān)技術(shù)文檔并在周一發(fā)表启搂。江俊良同學(xué)的所寫的文檔墓拜,簡(jiǎn)單易懂港柜,大家閱讀之后都一致好評(píng),在此值得肯定咳榜,愿再接再厲夏醉。3月14日的任務(wù)目的在于加深你們對(duì)于QT中信號(hào)與槽的理解,所以想簡(jiǎn)單的讓你們學(xué)會(huì)去使用信號(hào)與槽贿衍,故給出了如下需求授舟,讓大家通過(guò)編程實(shí)現(xiàn)
Let’s Do It Together
step1 創(chuàng)建界面
這一步很簡(jiǎn)單,我們打開QT贸辈,通過(guò)設(shè)計(jì)師模式释树,簡(jiǎn)單的拖拽一個(gè)LineEdit和PushButton,并做下垂直或水平布局(隨意)擎淤,效果如下圖:
Step2 聲明槽函數(shù)
進(jìn)入MainWindow.h(我創(chuàng)建的是默認(rèn)的mainwindow類奢啥,你們?nèi)绻趧?chuàng)建時(shí)自定義了類名,那么就進(jìn)入“你創(chuàng)建的類名.h”)嘴拢,在類中我們添加一種QT獨(dú)有的類的聲明標(biāo)識(shí)符:"private slots:"
如圖桩盲,我聲明了一個(gè)void 類型的名為ButtonSlot()的槽函數(shù),接下來(lái)我們定義槽函數(shù)如何去實(shí)現(xiàn)功能席吴。
按下F4我們可快速切換到Mainwindow.cpp赌结,并補(bǔ)出槽函數(shù)的外體輪廓:
Step3 在槽函數(shù)中實(shí)現(xiàn)功能
我們的目的在于當(dāng)Button被點(diǎn)擊后,彈出一個(gè)對(duì)話框孝冒,對(duì)話框顯示出LineEdit的輸入柬姚。
分以下幾步實(shí)現(xiàn):
1.使用QMessageBox類掉出一個(gè)對(duì)話框。
QMessageBox類之后我們會(huì)常用到庄涡,需要添加#include<QMessageBox>這個(gè)編譯預(yù)處理命令量承。在此,先給大家一個(gè)簡(jiǎn)單的使用示范穴店,你們之后再仔細(xì)了解撕捍。QMessage類中有一個(gè)靜態(tài)成員函數(shù)Information.這個(gè)函數(shù)會(huì)彈出一個(gè)對(duì)話窗口,用于提示一些信息泣洞。既然是靜態(tài)成員函數(shù)忧风,那么我們可以無(wú)需創(chuàng)建對(duì)象便可直接調(diào)用,調(diào)用方法為:QMessageBox::Information(當(dāng)前父窗口球凰,窗口標(biāo)題狮腿,信息內(nèi)容);其中第一個(gè)參數(shù)為我們當(dāng)前的父窗口该窗,即Mainwindow類所創(chuàng)建的負(fù)窗口,所以我們可以直接寫this指針蚤霞。窗口標(biāo)題和信息內(nèi)容都是是QString類型酗失。窗口標(biāo)題我們可以隨意填寫,用雙引號(hào)括起來(lái)即可臨時(shí)賦值一個(gè)字符串昧绣,或者用tr("")的方式规肴。
2.如何獲取LineEdit中的字符串
這個(gè)無(wú)需多講夜畴,一行代碼即搞定:
顯然拖刃,LineEdit類中有text()這個(gè)成員函數(shù),它返回一個(gè)QString類型的字符串贪绘。
3.建立槽與信號(hào)的連接
4.在構(gòu)造函數(shù)中更改窗口標(biāo)題
寫入“ASA”即可兑牡。
這里,就大功告成了税灌,ctrl+R跑起來(lái)吧均函!