日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Qt中QRect和CRect的比较

發(fā)布時間:2023/12/19 综合教程 41 生活家
生活随笔 收集整理的這篇文章主要介紹了 Qt中QRect和CRect的比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文介紹QtQRectWindows下的CRect的比較。

構(gòu)造方法

QRect的無參構(gòu)造方法是這樣的:

QRect(): x1(0),y1(0),x2(-1),y2(-1)

默認(rèn)構(gòu)造的x2和y2為-1,而CRect的無參構(gòu)造這兩個數(shù)值為0。

帶4個整形參數(shù)未知的構(gòu)造方法是這樣的:

QRect(int aleft, int atop, int awidth, int aheight)
{
  x1 = aleft;
  y1 = atop;
  x2 = aleft + awidth - 1;
  y2 = atop + aheight - 1;
}

CRect的四個整形參數(shù)構(gòu)造方法是這樣的:

CRect::CRect(int l, int t, int r, int b)
{
	left = l;
	top = t;
	right = r;
	bottom = b;
}

注意第三個參數(shù)是寬度,第四個是高度,而CRect的4個整形參數(shù),后兩個是rightbottom,內(nèi)在

寬高屬性

因為QRect在設(shè)置寬度時,x2的坐標(biāo)有-1操作,要獲得構(gòu)造時的寬度,就通過 x2 - x1 + 1,這樣的方法來獲得,這也是 QRect::width()的內(nèi)部實現(xiàn)。

CRect的寬度width直接等于 right - left。在CRect中,經(jīng)常是這樣設(shè)置寬度的,


const int nWidth = 15;
CRect rt;
rt.left = 10;
rt.right = rt.left + nWidth;

這樣設(shè)置目標(biāo)寬度和設(shè)置是要一致的。如果上述做法遷移到QRect上,就會有偏大。


const int nWidth = 15;
QRect rt;
rt.setLeft(10);
rt.setRight(rt.left() + nWidth);

這樣設(shè)置,rt的寬度實際上是16,而不是期望的15.如果需要正確的設(shè)置,則需要這樣:


const int nWidth = 15;
QRect rt;
rt.setLeft(10);
rt.setWidth(nWidth);

調(diào)用setWidth來設(shè)置寬度,可使得結(jié)果與預(yù)期一致。QRect的高度設(shè)置也是一樣,建議用setHeight來設(shè)置高度.

另一點注意,QRect::setWidthQRect::setHeight是通過更改x2y2來改變寬高,左上角坐標(biāo)是不會改變的。以下的做法是不能達到目的的:


// 先設(shè)置右邊距,再設(shè)置寬度,這樣不會使得left邊界位于10這里
QRect rt;
rt.setRight(20);
rt.setWidth(10);

QRect的其他函數(shù)說明

moveLeft是移動整個矩形,使之位于指定左邊距。

setLeft 是移動左邊距,不會改變右邊距。

獲得右邊距:建議使用 x() + width(),而不是 right()。right()會比實際位置少1個單位。

獲得下邊距:建議使用 y() + height(),而不是 bottom()。

小結(jié)

QRect類建議只使用left(),top(),width()和height()這些成員函數(shù),不要用right()bottom()函數(shù)。

參考文檔:

Qt 學(xué)習(xí)之路 :坐標(biāo)系統(tǒng)

作者:浩天之家

出處: http://www.cnblogs.com/cherishui/

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利.

Top

收藏

關(guān)注

評論

總結(jié)

以上是生活随笔為你收集整理的Qt中QRect和CRect的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。