記錄自己的QT學習之路(7)

2021-10-04 16:58:08 字數 1211 閱讀 5114

做一下今天學習的筆記:

1.槽函式要有宣告,有函式體,訊號只需要宣告,傳送訊號要用emit,可以用傳送訊號的物件的現有槽函式來emit訊號。

2.使用物件指標的時候要先進行例項化,如:

先在.**件裡申明乙個對話方塊dialog *dlg;

再在.cpp檔案裡例項化 dlg = new dialog();

這個物件也可以是.**件的物件,比如在dialog1.**件裡建立了乙個dialog1物件,裡面有它自己的函式和屬性,可以在別的檔案如widget.cpp裡面申明,先引用dialog1.h再申明dlg = new dialog1();

3.qboxlayout

qboxlayout可以在水平方向或垂直方向上排列控制項,被qhboxlayout、qvboxlayout所繼承。

qhboxlayout:水平布局,在水平方向上排列控制項,即:左右排列。

qvboxlayout:垂直布局,在垂直方向上排列控制項,即:上下排列。

4.qpixmap、qpainter、qpen、qimage

qpixmap依賴於硬體,qimage不依賴於硬體。

qpixmap主要是用於繪圖,針對螢幕顯示而最佳化設計,qimage主要是為影象i/o、訪問和畫素修改而設計的。

當小的情況下,直接用qpixmap進行載入,畫圖時無所謂,當大的時候如果直接用qpixmap進行載入,會佔很大的記憶體,一般一張幾十k的,用qpixmap載入進來會放大很多倍,所以一般大的情況下,用qimage進行載入,然後轉乘qpixmap使用者繪製。qpixmap繪製效果是最好的。

用法lab = new qlabel();

label->setpixmap(qpixmap(e:/***/***));

(注意這裡是反斜槓)

以上操作是通過路徑找到影象再把影象轉成pixmap資料再新增到控制項上

qpainter painter(&impixmap) 要用取位址符來設定畫筆的所在的畫板

qpixmap申明的時候不需要用*

即qpixmap pix;

其他控制項如label、boxlayout是需要*的

5.qdebug的用法

類似c++的cout函式

qstring str=「world」;

qdebug()<<「hello 「<6.ui的使用

使用ui的時候,新建了乙個控制項,使用ui->可以呼叫控制項,但會有紅色的下劃線,不用理會,可以編譯並成功執行(前提是記得儲存並編譯ui)。

記錄自己的QT學習之路(6)

對二維vector使用的一些經驗與總結 我建立了乙個新的類myshape,被line rect circle ellipse arc point六個子類所繼承 希望申明乙個二維vector,裡面存放這六個類並加以分組 申明語句qvector vmyshape 遍歷語句 for int i 0 i v...

記錄自己的QT學習之路(8)

今日學習筆記 void on button clicked 自動連線槽函式是需要什麼在private slots下的,如 清空二維vector的操作 vector的清空函式是 vmyshape clear 而由於二維vector的特殊性,這個操作只會清空第乙個vector即二維vector的第一行資...

Qt學習之路

qt 學習之路 是在網路上受到一定歡迎的 qt 入門教程。只是這個系列便攜與 2009 年,至今已經有三年多的時間。今天的 qt 有了很大的變化,包括 qt quick 的加入 qt 底層架構的改變,更重要的是 qt 5 的發布。本系列文章將會是 qt 學習之路 的一次公升級和修訂,著重關注於 qt...