1. 程式人生 > 實用技巧 >QT-滑鼠點選獲取ROI

QT-滑鼠點選獲取ROI

邏輯,滑鼠在QT 的控制元件上點選,獲取該點座標(x,y),然後設定ROI區域長寬width,heigh,然後獲取ROI區域左上角點((x-width/2),(y+height/2)),即滑鼠點選的點為ROI區域的中心

步驟:

1.獲取QT控制元件的滑鼠點選座標,我需要在Qlabel上獲取滑鼠點選座標,需要重寫QLabel,加上滑鼠事件,然後把相應的Qlabel控制元件提升為重寫的QLabel,

2.獲取ROI左上角,並判短是否會有邊緣越界問題。

 1     int xx, yy;//左上角座標
 2     int w, h;//控制元件的寬,高
 3     int ww,hh;//ROI區域寬、高
4 xx = x - ww/2;//x為滑鼠點選的橫座標 5 yy = y + hh/2;//y為滑鼠點選的縱座標 6 if (xx > (w-ww))//判斷邊緣 7 { 8 xx = (w-ww);//留有剛好夠ROI區域的xx座標 9 10 } 11 if (yy > h)//判斷邊緣 12 { 13 yy = h; 14 } 15 if (xx < 0)//判斷邊緣 16 { 17 xx = 0;//判斷邊緣 18 } 19 if (yy < ww)
20 { 21 yy = ww;//留有剛好夠ROI區域的yy座標 22 } 23 img(Rect(width, height, 150, 150)).copyTo(imgROI);//將img中ROI區域的資料傳到imgROI中