1. 程式人生 > >第2篇 Qt5基礎(二)編寫Qt多視窗程式

第2篇 Qt5基礎(二)編寫Qt多視窗程式

 

1、通過程式碼來設定按鈕的中文文字會覆蓋以前在設計模式設定的文字,(另外,如果大家以前學過Qt 4,那麼現在可能會激動地發現不用在使用setCodecForTr()等函式就可以直接顯示中文了)不過,在程式碼中直接使用中文字不是一個好的習慣,建議在編寫程式時使用英文,當程式完成後使用Qt語言家來翻譯整個軟體中要顯示的字串,這個在後面的教程中會講到。

2、類名首字母一般大寫

3、為了實現點選這個按鈕後可以關閉該對話方塊並顯示主視窗,我們需要設定訊號和槽的關聯。

4、把訊號和槽都看做是函式,比如這裡,當單擊了按鈕以後就會發射單擊訊號,即clicked();然後對話方塊接收到訊號就會執行相應的操作,即執行accept()槽

。一般情況下,我們只需要修改槽函式即可,不過,這裡的accept()已經實現了預設的功能,它會將對話方塊關閉並返回QDialog::Accepted標識,所以無需再做更改。

5、F3鍵來返回控制元件編輯模式;F4,便進入了訊號和槽編輯模式。

6、

void MainWindow::on_pushButton_clicked()
{
   QDialog *dlg = new QDialog(this);
   dlg->show();  
}

建立了一個對話方塊物件,然後讓其顯示。建立時指定的this引數表明這個對話方塊的父視窗是MainWindow。有的童鞋可能會問,如果多次按下按鈕,那麼每次都會生成一個對話方塊,是否會造成記憶體洩露或者記憶體耗盡?這裡簡單說明一下,Qt的物件樹機制

保證了不會造成記憶體洩露,而且不用寫delete語句,因為指明瞭對話方塊的父部件,所以當主視窗MainWindow銷燬時會自動銷燬建立的對話方塊。當然,嚴謹的童鞋也可以在mainwindow.h檔案中先定義一個對話方塊物件,並在建構函式中進行建立,然後再到這裡使用。