Qt零基礎教程(四) QWidget詳解(3):QWidget的幾何結構
這篇文章里面分析了QWidget中常用的幾種幾何結構
下圖是Qt提供的分析QWidget幾何結構的一幅圖,在幫助的 Window and Dialog Widgets 可以找到相關的內容介紹:
在Qt中橫坐標的方向和我們平時看到的笛卡兒坐標系是相同的,但是縱坐標和笛卡兒坐標系是相反的,這里的縱坐標是向下的,不知道是不是和剛開始的電子管屏幕電子打在屏幕上的順序是有關的。
從這副圖里面可以看到,這里有兩種幾何結構:
1:不包含外邊各種邊框的幾何結構。
2:包含外邊各種邊框的幾何結構;
**************************************************************************
在這里先分析不包含邊框的各種設置函數:
一般情況下式,不包含邊框的部分是客戶區部分,這里面就是我們正常操作的部分,可以在這部分里面添加子部件。這部分是一個長方形,那么對於一個長方形,就會有大小和位置。大小的話就是寬和高(國外的說法,和中國的長寬高不同),位置就是這個長方形在電腦屏幕上的位置。Qt中保存這個長方形是用了一個QRect這個類,這里我們不去深究這個類,后面的文章會詳細說明一下這個類。要改改變這個大小和位置可以有如下幾個函數:
1 void resize(int w, int h); 2 void resize(const QSize &);
這兩個函數是改變了長方形的大小,第一個參數是寬,第二個是高。這里的英文是Width和Height。設置了大小之后的窗口還是可以通過鼠標進行改變窗口的大小。
通過下面的函數可以獲得客戶區的大小:
1 QSize size() const
下面的函數分別獲得了寬度和高度:

1 int width() const 2 int height() const
如果要設置不可以改變的窗口:
set FixedHeight(int h)
這個時候高度就是固定的了,不可以改變高度,但是可以改變寬度
set FixedWidth(int w)
這個時候寬度就是固定的了,不可以改變寬度,但是可以改變高度
void setFixedSize(const QSize & s) void setFixedSize(int w, int h)
通過上面的這兩個函數,高度和寬度都是固定的了,不可以通過鼠標來改變窗口的寬度和高度。
同時改變大小和位置的函數是:
void setGeometry(int x, int y, int w, int h); void setGeometry(const QRect &);
x和y相對應的就是x坐標和y坐標。這里不可以單獨的設置x和y的坐標。
**************************************************************************
在這里分析包含邊框的各種設置函數:
包含邊框,這個邊框有大小和位置,是窗口在電腦屏幕上面顯示的整個區域。
要改改變這個大小和位置可以有如下幾個函數:
這里沒有設置這個大小的函數,因為通過上面不包含邊框函數的設置,就可以設置包含邊框大小了,要設置包含邊框的大小還是要通過上面的函數。通過下面的函數可以獲得整個窗口的位置和大小:
QRect frameGeometry() const
但是這里可以設置整體窗口的位置
void move(int x, int y) void move(const QPoint &)
然后可以通過下面的函數來獲得左上角的坐標:
QPoint pos() const
后面會陸續分析QWidget中的其他的一些屬性的功能即設置函數。
謝謝。