00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 开发环境
  • 03. 窗口几何布局
  • 04. 程序示例
  • 05. 窗口部件设置
  • 06. 附录

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

【Qt】Qt窗口几何布局相关推荐

  1. 深度探索Qt窗口系统——布局篇

    深度探索Qt窗口系统--布局篇 虽然界面管理器可以完成窗口布局,但是对于动态布局的情况下,这种做法就无能为力了,现实中界面经常要支持国际化,对于同一内容用不同语言翻译可能长度不一,这就需要窗口动态布局 ...

  2. Qt编程入门(2) : 窗口和布局(2)

    窗口和布局是Qt主要的组成部分,Qt为此封装了至少几百个Class,要全部掌握这些Class是不现实的,也是不明智的.本章重点介绍几个常用的窗口和布局管理器的基本用法,只帮助起到一个引领入门的作用.对 ...

  3. qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...

    用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...

  4. python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)

    https://doc.qt.io/qtforpython/PySide2/QtWidgets/QMainWindow.html?highlight=qmainwindow#PySide2.QtWid ...

  5. linux 界面工具 qt,Qt主窗口中的工具栏

    工具栏类 QToolBar 快捷项 QAcitonQToolBar* tb = addToolBar("Tool Bar");//addToolBar是Qt主窗口的成员函数,在主窗 ...

  6. 拦截QT关闭窗口的CloseEvent

    写程序遇到了QTimer启动以后可以在普通函数(例如槽函数)里面停止,但是无法在析构函数里停止的问题.想方设法皆无果,最后之得从关闭窗口上下功夫,关闭窗口时判断如果timer还是启动状态(即后台进程还 ...

  7. 使用Qt作窗口截屏(含源码)

    截屏(screenshot),就是将屏幕上的东西拷贝下来存成图片文件.介绍的好像有点多余:(,那我们就直接切入正题. QPixmap提供了两个函数grabWidget和grabWindow可以将屏幕上 ...

  8. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    版权声明 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者"tingsking18"和主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口程序.消 ...

  9. qt自定义窗口添加父窗口后,显示不出来

    提要 继承于QDialog的类,在被其它类创建的改对象时,没设置父窗口前显示正常,设置了父窗口后显示不出来. 自定义窗口的构造函数 configBtnNameDialog::configBtnName ...

最新文章

  1. 聊聊前后端分离的接口规范
  2. 无插件HTML,HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)分享!
  3. mysql集群初始化配置_集群Cluster MySQL的安装配置和使用
  4. java Trie实现英文单词查找树 搜索自动提示
  5. php从注册列表卸载,MSSQL_彻底删除SQL Server注册表的方法,一般在卸载完数据库时,大家 - phpStudy...
  6. 编译型语言和解释型语言区别,编译器,解释器的区别
  7. 酷狗直播联手腾讯游戏破圈“组团” 游戏直播正版化杀入重量级玩家
  8. 职场调侃:工作五年之后的十三种痛!
  9. 奇异的Pinvoke调用
  10. 计算机还原取消,如何取消开机一键还原F11选项?
  11. 中国邮路算法(中国邮递员问题)(详细)
  12. sum多个字段的值相加_Excel Sumifs函数多字段多条件求和使用实例
  13. 【CityHunter】Unity3D设计AR探索模式
  14. ESP8266最小系统
  15. html5 保存 搜索历史,前端实现搜索记录功能也就是天猫app历史记录存储方便浏览 - 今天的代码你撸了嘛...
  16. 如何使用swagger的API接口获取数据并且封装
  17. Cacti 无法启用气象图和气象图中图标添加
  18. 两台电脑用网线直连传文件
  19. DM达梦数据库集群之分布式集群(MPP)主备
  20. BCD码以及各进制之间的相互转换

热门文章

  1. C#sql语句如何使用占位符
  2. 水题 逆序对 NOIP 2013 火柴排队
  3. 编程范式,程序员的编程世界观(转)
  4. Java黑皮书课后题第10章:*10.18(大素数)编写程序找出五个大于Long.Max_VALUE的素数
  5. linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除
  6. 线性时间复杂度求数组中第K大数
  7. shell判断IP地址是否合法
  8. Jmeter_简单的关联设置
  9. MySQL安装与基本使用
  10. css实现排序升降图标