目錄
正常的情形(height > 0)
「反常的」情形(height < 0)
在前面的部落格《自己對qlinef::angle()的理解 》裡,我提到了qwidget的y軸指向向下。這樣的情況同樣發生在qrect等幾何形狀上。qrect::top()的字面意思是矩形上沿的縱座標。我們往往會認為其返回值等於矩形四個頂點裡縱座標最大的那個值。然而,由於qt對y方向的規定,當qrect::height()為正時,top返回的其實是較小的值。所謂的「正常情形」,指的是height > 0. qpolygon::boundingrect()函式返回的就是這種正常的矩形。來看下面的例子:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include #include mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
mainwindow::~mainwindow()
void mainwindow::on_pushbutton_clicked()
效果:
對於由(0,0), (0,1), (1,0), (1,1)圍成的矩形,top = 0
對於由(0,-1), (0,1), (1,-1), (1,1)圍成的矩形,top = -1
可見,top返回的是y方向較小的點的縱座標。
沿著這個思路走下去,考慮如何運用qrect的建構函式。qrect有多種建構函式,其中一種的語法是這樣的
qrect(qpoint, qsize())
qsize::height 的含義值得注意。當height為正時,說明qrect::bottom > qrect:top
來看下面的**:
可見,當height為正時,說明qrect::bottom > qrect:top
另外,有人注意到bottom == 9, height == 9而不是10.qt的文件對此給出了解釋:
returns the y-coordinate of the rectangle's bottom edge.
note that for historical reasons this function returns top() + height() - 1; use y() + height() to retrieve the true y-coordinate.
根據qt的文件,setheight()函式除了更新height()之外,還會更新bottom()。但是top()是不會被更新的。同樣,setbottom()函式只會引起bottom和height的變化,不會更新top。
總的來說,只要不呼叫settop,setleft, settopleft, topleft的位置是不變的。
看下面的**:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
mainwindow::~mainwindow()
void mainwindow::on_pushbutton_clicked()
向spinbox輸入數值,然後計算矩形的6個屬性,並在底下的文字框中列印:
再看下面的**:
總之,只要不呼叫settop,setleft, settopleft, topleft的位置是不變的。
建構函式以及this
實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...
建構函式以及this
實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...
php fopen函式以及相關函式
fopen string filename string mode bool use include path false resource context fopen 將 filename 指定的名字資源繫結到乙個流上。引數 filename 如果 php 認為 filename 指定的是乙個本地...