一、区别概述
Qt 提供了很多关于获取窗体位置及显示区域大小的函数,如 x()、y() 和 pos()、rect()、size()、geometry() 等,统称为“位置相关函数”或“位置函数”。
几种主要位置函数及其之间的区别如下所示:
其中,
- x()、y() 和 pos() 函数的作用都是获取整个窗体左上角的坐标位置。
- frameGeometry() 函数与 geometry() 函数相对应。frameGeometry() 函数获得的是整个窗体的左上顶点和长、宽值,而 geometry() 函数获得的是窗体内中央区域的左上顶点坐标及长、宽值。
- 直接调用 width() 和 height() 函数获得的是中央区域的长、宽值。
- rect()、size() 函数获得的结果也都是对于窗体的中央区域而言的。size() 函数获得的是窗体中央区域的长、宽值。rect() 函数与 geometry() 函数相同,返回一个 QRect 对象,这两个函数获得的长、宽值是相同的,都是窗体中央区域的长、宽值,只是左上顶点的坐标值不一样。geometry() 函数获得的左上顶点坐标是相对于父窗体而言的坐标,而 rect() 函数获得的左上顶点坐标始终为 (0,0) 。
在实际应用中,需要根据情况使用正确的位置信息函数以获得准确的位置尺寸信息,尤其是在编写对位置精度要求较高的程序(如地图浏览程序)时,更应注意函数的选择,以避免产生不必要的误差。