Qt / 坐标系统
每個 GUI 操作系統(tǒng)都有特定的坐標系統(tǒng),坐標系統(tǒng)用于在圖形界面程序中進行窗口、組件的定位(定位的前提就是要有坐標系統(tǒng))及窗口部件的大小設(shè)置。其中定位類型有頂級窗口組件的定位、窗口內(nèi)部的組件定位和窗口部件的大小設(shè)置。
Qt 中使用統(tǒng)一的坐標系統(tǒng)定位窗口部件的位置和大小。
Qt 的組件類提供成員函數(shù)在坐標系統(tǒng)中進行定位,如函數(shù) x()、y()。
QWidget 類提供了窗口部件所需的坐標系統(tǒng)成員函數(shù)。
其中上圖外層坐標表示窗口在屏幕中的坐標,內(nèi)層表示用戶區(qū),除去標題欄和最小化、最大化、關(guān)閉按鈕的坐標,在坐標系中橫為 x(向右為增),豎為 y(向下為增)。
坐標系統(tǒng)相關(guān)成員函數(shù)
QWidget 直接提供的 x()、y() 、width()、 height() 函數(shù)表示窗口左上角開始計算的坐標(相對于電腦界面左上角而言)和客戶區(qū)的寬度和高度。
geometry() 提供的 x()、y() 、width()、 height() 函數(shù)表示客戶區(qū)左上角開始計算的坐標和客戶區(qū)的寬度和高度。
frameGeometry() 提供的 x()、y() 、width()、 height() 函數(shù)表示窗口左上角開始計算的坐標和窗口的寬度和高度。
注意:提供三組坐標就是為了跨平臺使用,由于不同平臺的標題欄大小不同,以及注意每組坐標系統(tǒng)中的適用區(qū)域。
在編程中:
親測,如果在 show() 調(diào)用之前調(diào)用的話數(shù)據(jù)是無效的。
因為在不同的平臺中如果窗口還未顯示出來我們則無法知道邊框大小,只有將窗口顯示出來后才能獲取有效的坐標系統(tǒng)數(shù)據(jù)。
?
轉(zhuǎn)載于:Qt 坐標系統(tǒng)、窗口部件位置大小設(shè)置及簡單的QPushButton使用 - 一杯清酒邀明月 - 博客園 (cnblogs.com)
?
(SAW:Game Over!)
總結(jié)
- 上一篇: Qt / QWidget、QFrame
- 下一篇: Qt / 窗体设置 Qt::WA_Tra