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

2021-10-04 16:28:24 字數 942 閱讀 9714

對二維vector使用的一些經驗與總結:

我建立了乙個新的類myshape,被line、rect、circle、ellipse、arc、point六個子類所繼承

希望申明乙個二維vector,裡面存放這六個類並加以分組

申明語句qvector> vmyshape;

遍歷語句:

for

(int i =

0; i < vmyshape.

size()

; i++

)}

通過但會報錯「index out of range」陣列溢位(下標越界)

原因是我們事先沒有為qvector分配空間,而直接採用了陣列下標的方式訪問了qvector(即qvector[n]的形式),會報訪問超界的錯。

解決辦法1:使用迭代器訪問vector

qvector

>>

::iterator iter;

qvector

>

::iterator it;

qvector

> i;

for(iter = vmyshape.

begin()

; iter != vmyshape.

end(

); iter++

)}

解決方法2:先事先宣告vector的大小再用陣列下標的方式訪問

qvector

> vmyshape[6]

;***

for(

int i =

0; i <

6; i++

)}

我採用的是第二種,使用第一種方法的時候會報錯,至今不知道原因,我懷疑可能是我vector裡存放的是物件,而用迭代器訪問的時候只能訪問到物件但不能直接使用物件的方法,如有大神發現請告知。

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

做一下今天學習的筆記 1.槽函式要有宣告,有函式體,訊號只需要宣告,傳送訊號要用emit,可以用傳送訊號的物件的現有槽函式來emit訊號。2.使用物件指標的時候要先進行例項化,如 先在.件裡申明乙個對話方塊dialog dlg 再在.cpp檔案裡例項化 dlg new dialog 這個物件也可以是...

記錄自己的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...