QT學習2-按鍵切換窗口


一、建立窗口

      建立默認UI窗口mainwindow

 

 

 

 

 

    建立登錄窗口

 

 

 

 

命名為 LoginDlg

 

 

當完成后會自動跳轉到設計模式,對新添加的對話框進行設計。我們向界面上拖入一個Push Button,然后更改顯示文本為“登錄到主界面”。

為了實現點擊這個按鈕后可以關閉該對話框並顯示主窗口,我們需要設置信號和槽的關聯。點擊設計模式上方的  圖標,或者按下F4,

便進入了信號和槽編輯模式。按着鼠標左鍵,從按鈕上拖向界面,如下圖所示。

 

 

 

這里簡單介紹一下信號和槽,大家可以把它們都看做是函數,比如這里,當單擊了按鈕以后就會發射單擊信號,即clicked();然后對話框接收到信號就會執行相應的操作,即執行accept()槽。一般情況下,我們只需要修改槽函數即可,不過,這里的accept()已經實現了默認的功能,它會將對話框關閉並返回Accepted,所以我們無需再做更改。下面我們就是要使用返回的Accepted來判斷是否按下了登錄按鈕。

 

 

完成后,可以按下  或者按下F3來返回控件編輯模式。

 

在這里,我們先添加了頭文件,創建了LoginDlg類的對象dlg,然后讓dlg運行,即執行exec()函數,並判斷對話框的返回值,會在exec這條語句循環,直到消息信號過來

如果是按下了登錄按鈕,那么返回值應該是Accepted,這時就關閉dlg,顯示主窗口mainwindow,並正常執行程序;如果沒有按下登錄按鈕,那么就循環直到關閉窗口結束程序。

現在大家可以運行程序,測試一下效果。

運行結果

 

接下來還有一種方法,建立新的窗口不會關閉舊有窗口

我們打開mainwindow.ui文件進入設計模式,然后在按鈕部件上單擊鼠標右鍵並選擇轉到槽菜單,如下圖所示。

 

 

 

 

 

 

 在彈出的轉到槽對話框中選擇clicked()信號並按下確定按鈕。

這時會跳轉到編輯模式mainwindow.cpp文件的on_pushButton_clicked()函數處,這個就是自動生成的槽,它已經在mainwindow.h文件中進行了聲明。

我們只需要添加窗體頭文件和更改函數體即可。這里更改為:

運行結果

 

 

 這個程序里我們實現了兩類窗口打開的方式,一個是自身消失而后打開另一個窗口,一個是打開另一個窗口而自身不消失。可以看到他們實現的方法是不同的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

mainwindow


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM