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)。
—————
Qt指定窗口显示的位置
在Qt中,可以通过设置窗口的geometry
或frameGeometry
属性来指定窗口显示的位置和大小。geometry
属性包括了窗口的边框、标题栏和客户区,而frameGeometry
只包括窗口的边框和标题栏。
以下是一个简单的例子,展示如何设置窗口的位置:
#include <QApplication>
#include <QWidget>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("指定窗口位置示例");
window.resize(200, 100);
// 设置窗口的显示位置(指定的位置为屏幕坐标系中的x和y坐标)
// 例如,将窗口显示在屏幕的坐标(100, 100)处
window.move(100, 100);
window.show();
return app.exec();
}
在这个例子中,我们创建了一个窗口,并通过move
函数将其位置设置在屏幕上的(100,100)位置。当然,你也可以在窗口创建之前,通过调用QWidget::setGeometry
直接设置窗口的位置和大小。
参考: https://blog.csdn.net/qq_43611366/article/details/135935819