【Qt】Qt窗口几何布局

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
喜欢就支持一下吧
点赞407 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容