信號與槽的簡單應用實例

題外話

?????? 按照我之前的規劃,我讓江俊良同學撰寫了關于QT中信號與槽的相關技術文檔并在周一發表。江俊良同學的所寫的文檔,簡單易懂,大家閱讀之后都一致好評,在此值得肯定,愿再接再厲。3月14日的任務目的在于加深你們對于QT中信號與槽的理解,所以想簡單的讓你們學會去使用信號與槽,故給出了如下需求,讓大家通過編程實現

3.14_task

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跑起來吧!

最終實現
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容