#include "win.h"
#include <QPushButton>
#include <QLabel>
#include <QDebug> Win::Win(QWidget *parent)
: QWidget(parent)
{
this->resize(,);
QPushButton* btn=new QPushButton("按钮",this);
btn->move(,);
i=btn->x(); //返回控件的x坐标
qDebug()<<i;
i=btn->y(); //返回控件的y坐标
qDebug()<<i;
}

相对于父控件的坐标(窗口框架左上角)

顶层控件(没有父控件)则相对于桌面的坐标

QPoint point;
point=btn->pos(); //返回控件的坐标--QPoint(15,10)
i=point.x();//提取x坐标
i=point.y();//提取y坐标
i=btn->width();  //控件的宽度,不包含任何窗口框架
i=btn->height(); //控件的高度,不包含任何窗口框架
QSize size;
size=btn->size(); //返回控件的宽和高;width和height的组合--QSize(100, 30)
i=size.width(); //提取宽度
i=size.height();//提取高度
QSize size;
QRect rect;
rect=btn->geometry(); //相对于父控件的位置和尺寸的组合---QRect(15,10 100x30)
i=rect.x(); //提取x坐标
i=rect.y(); //提取y坐标
size=rect.size();//提取大小--宽和高
i=rect.width(); //提取宽
i=rect.height(); //提取高
QSize s;
s=w.frameSize(); //框架大小.一定要在show之后,否则数据错误--QSize(516, 439)
QRect rect;
rect=w.frameGeometry(); //框架位置和大小。一定要在show之后,否则数据错误--QRect(425,133 516x439)

设置位置和尺寸:

move(x, y)      操控的是x, y;也就是pos      包括窗口框架

resize(width, height)      操控的是宽高    不包括窗口框架

如果小于最小值,就无效

setGeometry(x_noFrame, y_noFrame, width, height)    注意,此处参照为用户区域

#在show之后设置

adjustSize()    根据内容自适应大小

注意:单次有效,在设置内容后面使用

this->setFixedSize(500,400);  // 设置固定尺寸

最大和最小尺寸:

minimumWidth()       返回最小尺寸的宽度

minimumHeight()      返回最小尺寸的高度

minimumSize()        返回最小尺寸     QtCore.QSize()

maximumWidth()     返回最大尺寸的宽度

maximumHeight()      返回最大尺寸的高度

maximumSize()       返回最大尺寸

setMaximumWidth()     返回设置最大宽度

setMaximumHeight()    返回设置最大高度

setMaximumSize()        返回设置最大尺寸

setMinimumWidth()       返回设置最小宽度

setMinimumHeight()       返回设置最小高度

setMinimumSize()         返回设置最小尺寸

注意  控件完全展示前后会有所差异

控件内容展示区域:

setContentsMargins(左, 上, 右, 下)       设置控件内容展示区域到边框的距离

getContentsMargins()      获取内容边距   (左, 上, 右, 下)  元组

(50, 50, 0, 0)   就是展示区域到各边框的距离

contentsRect()     获取控件内容展示区域的位置和大小。

QRect(50, 50, 150, 50)    参数1参数2 :展示区域到控件左上角的坐标   参数3:展示区域的宽;参数4:展示区域的高

注意:必须是控件本身留够对应的大小

qt5-QWidget坐标系统和大小和展示区域的更多相关文章

  1. pyqt5-QWidget坐标系统和大小

    获取坐标和尺寸: 坐标的获取视频教程:https://v.qq.com/x/page/t085892mzh9.html  x()    y()   返回控件的坐标 相对于父控件的坐标(窗口框架左上角) ...

  2. SVG中的坐标系统和坐标变换

    视野和世界 2D绘图中很多人会有一个误区,就是我绘图的区域是一个矩形区域.无论新建一个画布还是创建了一个容器,心里都想象里面有一个矩形区域.其实,在SVG当中,矩形区域只是视野,是我们看到的部分.实际 ...

  3. 理解SVG坐标系统和变换: transform属性

    SVG元素可以通过缩放,移动,倾斜和旋转来变换-类似HTML元素使用CSS transform来变换.然而,当涉及到坐标系时这些变换所产生的影响必然有一定差别.在这篇文章中我们讨论SVG的transf ...

  4. 2. svg学习笔记-svg中的坐标系统和viewbox

    我是通过<SVG精髓>这本书学习的svg,说实话,这本书写的不好,或者说翻译的不好,我没有看过这本书的原版,不知道原文写的怎么样,但是翻译出来的有些句子真的很拗口.以前老师给我们API文档 ...

  5. CSS-蜂窝状展示区域(多个六边形)的一种实现方式

    网上已经有很多关于正六边形的CSS画法,主要是利用一个矩形和前后的两个三角形组合而成. 之前在看四维图新的官网的时候,发现了一种六边形的画法,比较适合多排六边形组合成蜂窝状的展示区域(注:四维图新现在 ...

  6. js 基于可视区域 创建展示区域对应的经纬度二维数组

    本篇文章主要是分享下基于地图区域创建经纬度二维数组,需要的朋友可以过来参考下 接上个文章, 基于 地图区域,算出这个展示区域对应的点. 经纬度的变化关系:  XY页面展示上, 从左到右维度是增加 如: ...

  7. AS3舞台的大小,可视区域大小及SWF文件的原始尺寸大小

    AS3舞台的大小,可视区域大小及SWF文件的原始尺寸大小三者之间没有什么关系. 当前可视区域:stage.stageWidth,stage.stageHeight.SWF文件编译后的原始尺寸大小:lo ...

  8. 理解SVG坐标系统和变换: 建立新视窗

    在SVG绘制的任何一个时刻,你可以通过嵌套<svg>或者使用例如<symbol>的元素来建立新的viewport和用户坐标系.在这篇文章中,我们将看一下我们如何这样做,以及这样 ...

  9. SVG坐标系统和transformation彻底理解

    翻译自https://sarasoueidan.com/blog/svg-coordinate-systems/ SVG元素不像传统的HTML elements一样受制于css box model.这 ...

随机推荐

  1. jmeter-JDBC 连接池设置

  2. idea导入eclipse的web项目

    idea导入eclipse的web项目 一.导入自己的web项目      步骤:File->New->Project from Existing Source... 二.选择项目的所在位 ...

  3. Maven设置阿里仓库镜像增加访问速度

    修改maven的setting.xml 在mirrors节点下面添加子节点 <mirror> <id>nexus-aliyun</id> <mirrorOf& ...

  4. Vue的响应系统

    随着 Vue 3.0 Pre Alpha 版本的公布,我们得以一窥其源码的实现.Vue 最巧妙的特性之一是其响应式系统,而我们也能够在仓库的 packages/reactivity 模块下找到对应的实 ...

  5. MySQL数据库增删改查SQL语句(2018整理集合大全)

    查看数据库 show databases;  使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 cre ...

  6. Java 父类的static成员在子类中的继承情况

    父类的static成员在子类中的继承状况是怎么样的呢? 昨天突然想到这个问题,刚才试验了一下,发现很容易解释,没什么值得探讨的. 首先在学习继承时,书本都没有强调static成员有什么特殊的地方. 然 ...

  7. Entity Framework Core Relationship的学习笔记

    说明 此例筛选了感兴趣及常用部分 参考文献 https://docs.microsoft.com/en-us/ef/core/modeling/relationships One to Many Ma ...

  8. 关于记录log日志的几种方法

    最近在记录日志的时候总结了几种方式: 1.使用log4j2记录 2.使用log4j记录 3.使用logback配置,记录前使用 private  final Logger logger = Logge ...

  9. 使用sublimeserver启动本地服务器进行调试

    最近在做前后端分离的项目,访问后台接口的时候会产生跨域问题,修改了相关配置解决了跨域问题,但是配置中只对开发环境进行了设置,没有设置生产环境,为了验证生产环境确实无法访问后台接口遂npm run bu ...

  10. symfony2学习笔记——控制器

    //获取get过来的参数 $val = $request->query->get('aaa'); //获取post过来的参数 //$val = $request->request-& ...