完成Hello World可以通過很多控件實現
如采用編輯框來完成hello world
?編輯框分為單行編輯框----QLineEdit
??????????和多行編輯框---QTextEdit
采用單行編輯框,創建項目后,展開forms文件夾,雙擊ui文件進入
qt designer設計頁面
找到line edit
拖到頁面中,雙擊進行文本輸入
運行后就能輸出hello world
輸出了一個文本框,可以進行修改
使用純代碼方式實現
在weight構造函數中引入一個QLineEdit類,插入對象樹,并設置文本,需引入頭文件
運行后就能輸出文本框和設置的內容
使用按鈕的方式實現helloworld
雙擊ui文件進入Qt Designer
使用push button,設置文本內容后,同樣可以進行文本輸出
并且可以進行點擊,若想通過點擊實現一定操作,使點擊具有反饋,就需要使用Qt中的信號槽機制
信號槽機制
?本質就是給按鈕的點擊操作關聯上一個處理函數,當用戶進行點擊的時候,就會執行這個處理函數
同樣是在weight的構造函數處實現
調用connet函數,將信號與槽綁定
ui->pushButton是指向ui文件中創建的控件,在Qt Designer中創建一個控件的時候就會為其分配一個objectName屬性,值是唯一的,可以進行修改,表示由誰發送信號
&QPushButton::clicked是一個信號,點擊按鈕時就會發送信號,表示發送什么信號
this表示由weight進行信號接收,表示由誰接收信號
&Weight::handleClick表示接收到信號后所調用的處理函數
在頭文件中進行處理函數的聲明
在cpp文件中實現函數的定義,實現點擊一次就切換內容,通過對button中的文本的判斷來實現隨著點擊發送信號,調用處理函數,內容進行切換?
為什么可以可以通過ui->pushButton的方式來訪問button的內容?
在創建按鈕時,自動在ui_widget.h----根據widget.ui文件生成的文件中包含一個QPushButton* pushButton成員,與Designer界面中設置的objectName值一致,在ui文件編譯時,會生成一個C++頭文件,其中會定義一個Ui::XXX的類,該類包含ui界面中的所有控件的成員變量
通過代碼實現QPushButton
在頭文件中包含QPushButton頭文件,將QPushButton設置為成員變量,聲明處理函數
在cpp文件中實現成員變量定義,文本設置,信號與槽連接,處理函數定義
純代碼版本和通過Qt Designer設置button的區別
純代碼需自己new一個QPushButton,將其設置為widget成員變量后,通過this指針直接訪問
而Designer的按鈕對象不需要進行new,new對象的操作是由Qt自動生成的,按鈕對象被作為ui對象中的一個成員變量進行訪問