00. 目录
01. 概述
QT中的坐标系统以左上角为原点,水平为x轴,从左向右为正向,垂直为y轴,从上到下为正向。
02. 开发环境
Windows系统:Windows10
Qt版本:Qt5.15或者Qt6
03. 窗口几何布局
GUI程序在坐标系统中进行窗口和部件的定位
定位类型分为:
-
顶级窗口部件的定位
-
窗口内部件的定位
-
窗口部件的大小设置
QT使用统一的坐标系统定位窗口部件的位置和大小
QT部件类提供成员函数在坐标系统中进行定位
QWidget类提供了窗口部件所需的坐标系统成员函数
这里的函数分为两类,一类是包含框架的,一类是不包含框架的。
包含窗口框架的函数有:
Including the window frame: x(), y(), frameGeometry(), pos(), and move().
不包含窗口框架的函数有:
Excluding the window frame: geometry(), width(), height(), rect(), and size().
04. 程序示例
#include "widget.h"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w(nullptr, Qt::Window);
//设置主窗口的位置
w.move(0, 0);
//设置主窗口客户区的大小
w.resize(480, 320);
//设置标题栏
w.setWindowTitle(QObject::tr("湖北武汉"));
w.show();
//输出边框几何信息
qDebug() << "输出边框几何信息: ";
qDebug() << " x: " << w.x() << Qt::endl
<< " y: " << w.y() << Qt::endl
<< "x: " << w.frameGeometry().x() << Qt::endl
<< "y: " << w.frameGeometry().y() << Qt::endl
<< "width: " << w.frameGeometry().width() << Qt::endl
<< "height: " << w.frameGeometry().height() << Qt::endl
<< "pos: " << w.pos();
qDebug() << "输出客户区几何信息: ";
qDebug() << " x: " << w.geometry().x() << Qt::endl
<< " y: " << w.geometry().y() << Qt::endl
<< "width: " << w.width() << Qt::endl
<< "height: " << w.height() << Qt::endl
<< "width: " << w.geometry().width() << Qt::endl
<< "height: " << w.geometry().height() << Qt::endl;
return a.exec();
}
执行结果:
输出边框几何信息:
x: 0
y: 0
x: 0
y: 0
width: 482
height: 352
pos: QPoint(0,0)
输出客户区几何信息:
x: 1
y: 31
width: 480
height: 320
width: 480
height: 320
友情提示:
geometry()、frameGeometry()函数需要在show()函数后调用。QT平台在窗口显示出来之前无法确定窗口的大小。
05. 窗口部件设置
QWidget类提供了设置窗口部件大小和位置的成员函数
改变窗口部件的大小
void resize(const QSize &);
void resize(int w, int h);
改变窗口部件的位置
void move(int x, int y);
void move(const QPoint &);
06. 附录
6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639
6.2 源码下载
网址:
6.3 关键字索引
关键字:Window and Dialog Widgets
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容