Qt提供了很多获取窗体位置和显示区域大小的函数,如下图所示:
具体说明如下:
- x () 获取整个窗体左上角x的坐标;
- y () 获取整个窗体左上角y的坐标;
pos()获取整个窗体左上角的坐标,即包括了 x 和 y的坐标;
xValueLabel->setText(xStr.setNum(x())); yValueLabel->setText(yStr.setNum(y())); positionStr = tempStr11.setNum(pos().x())+","+ tempStr12.setNum(pos().y());
- frameGeometry()获取整个窗口左上角的坐标值和整个窗口的长宽;
- geometry()获取中央区域左上角的坐标值(相对于父窗口)和中央区域的长宽;
- width()获取中央区域的长度(宽度);
height()获取中央区域的宽度(高度);
frameStr = tempStr1.setNum(frameGeometry().x())+","+ tempStr2.setNum(frameGeometry().y())+","+ tempStr3.setNum(frameGeometry().width())+","+ tempStr4.setNum(frameGeometry().height()); geoStr =tempStr21.setNum(geometry().x())+","+ tempStr22.setNum(geometry().y())+","+ tempStr23.setNum(geometry().width())+","+ tempStr24.setNum(geometry().height()); widthValueLabel->setText(wStr.setNum(width())); heightValueLabel->setText(hStr.setNum(height()));
- size()获取中央区域的长度和宽度,即width 和height的值;
rect ()与geometry类似,但其左上角的坐标值一直是0。
sizeStr =tempStr41.setNum(size().width())+","+ tempStr42.setNum(size().height()); rectStr =tempStr31.setNum(rect().x())+","+ tempStr32.setNum(rect().y())+","+ tempStr33.setNum(/*rect().width()*/width())+","+ tempStr34.setNum(height()/*rect().height()*/);
测试结果如下图所示:
参考文献
[1] 路文周. Qt5开发及实例[M]. 北京:电子工业出版社, 2015. 201-205