網(wǎng)站開發(fā)實用技術(shù)介紹南寧一站網(wǎng)網(wǎng)絡(luò)技術(shù)有限公司
需要云服務(wù)器等云產(chǎn)品來學(xué)習Linux的同學(xué)可以移步/-->騰訊云<--/-->阿里云<--/-->華為云<--/官網(wǎng),輕量型云服務(wù)器低至112元/年,新用戶首次下單享超低折扣。
目錄
?一、Qt Creator快捷鍵
二、對象樹
1、對象樹的析構(gòu)
2、自定義類的編寫
三、使用控件顯示hello world
1、QLineEdit(單行文本輸入框)
2、PushButton(按鈕)
兩種控制控件的方式
四、Qt窗口坐標體系
?一、Qt Creator快捷鍵
? 注釋:ctrl + /
? 運行:ctrl + R
? 編譯:ctrl + B
? 字體縮放:ctrl + 鼠標滑輪
? 查找:ctrl + F
? 整行移動:ctrl + shift + ?/?
? 幫助文檔:鼠標定位+F1
? 自動對齊:ctrl + i
? 同名之間的 .h 和 .cpp 的切換:F4
? 生成函數(shù)聲明的對應(yīng)定義: alt + enter
? ctrl +鼠標左鍵跳轉(zhuǎn)定義 ,Alt+??跳轉(zhuǎn)回來
二、對象樹
1、對象樹的析構(gòu)
QLabel* label = new QLabel(this);
因為對象樹,上述代碼不主動調(diào)用delete,label對象在窗口關(guān)閉的時候會被析構(gòu)釋放。
如果這個變量是在棧上創(chuàng)建的,就可能出現(xiàn)“控件被提前釋放的問題”,這也是Qt喜歡在堆區(qū)申請空間的原因。
2、自定義類的編寫
編寫一個自定義類,需要在其構(gòu)造函數(shù)中,指定父對象,這樣通過自定義類構(gòu)造的對象才會被掛到對象樹上。(如果對象沒有掛到對象樹上,就必須手動釋放資源,防止資源泄漏)
通過繼承Qt內(nèi)置的類,就可以達到對現(xiàn)有控件功能進行擴展。(繼承后重寫類方法)
三、使用控件顯示hello world
1、QLineEdit(單行文本輸入框)
2、PushButton(按鈕)
代碼中通過這個objectName來對控件進行控制。(ui->objectName來控制)
void Widget::HandleClick()
{if (ui->pushButton->text() == QString("hello world")){ui->pushButton->setText("hello qt"); // 點擊按鈕后,變?yōu)閔ello qt}else {ui->pushButton->setText("hello world"); // 點擊按鈕后,變?yōu)閔ello world}
}
兩種控制控件的方式
四、Qt窗口坐標體系
坐標體系:以左上角為原點(0,0),X向右增加,Y向下增加。
Qt某個控件的坐標原點,由其父控件決定: