QT获取窗口大小和位置等信息
QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent。

来源:http://blog.csdn.net/dbzhang800/article/details/6741344?reload
操作:
| frameGeometry() | 几何尺寸(位置+大小) | 对于窗口,包含窗口装饰器 |
| x()y()pos() | 只包含位置信息(左上角坐标) | |
| move() | 只移动位置 | |
| geometry() | 几何尺寸(位置+大小) | 不包含窗口装饰器 |
| width()height()rect()size() | 只包含大小信息 | |
| setGeometry() | 改变 位置+大小 | |
| resize() | 只改变大小 |
一直在考虑怎么使中心窗口在主窗口全屏之后,中心窗口也按比例放大。
其中包括,中心窗口的大小适应,中心窗口
1.创建你的UI,其中使用弄好你的顶级布局,选中widget窗口 - 点击右键 - 布局 - 栅格布局。
2.构造函数中
centralWidget = new QWidget;
QWidget * a = new QWidget(centralWidget);
ui1->setupUI(a);
a->hide();
QWidget * b = new QWidget(centralWidget);
ui2->setupUI(b);
b->hide();
setCentralWidget(centralWidget) //这样的好处在于,你可以弄很多ui,想使用哪个UI直接uin->setupUI(widgetn),再widgetn->show()就可以了。
3.但是如果你想拖动主窗口的时候,能够让窗口中的组件随着窗口也能缩放的话,需要重写resizeEvent,原因在于,在构造之后,子窗口的大小就是固定的。
void resizeEvent(QresizeEvent* size)
{
centralWidget->resize(frameGeometry().size()); //是采用size()还是frameGeometry.size()根据自己的需求。
}
有什么问题,请留言说明,大家一起交流并且解决。
附加设备相关的屏幕尺寸信息,如果你重写resizeEvent的话,我认为这是不必要的。
QDesktopWidget* desktopWidget = QApplication::desktop();
//得到客户区矩形
QRect clientRect = desktopWidget->availableGeometry();
//得到应用程序矩形
QRect applicationRect = desktopWidget->screenGeometry();
qt中获取窗口位置和大小的方法:
//窗口左上角的位置(含边框)
qDebug() << this->frameGeometry().x() << this->frameGeometry().y() << ;//
qDebug() << this->x() << this->y();//
qDebug() << this->pos().x() << this->pos().y();//3
//窗口的宽度和高度(含边框)
qDebug() << this->frameGeometry().width() << this->frameGeometry().height();
//窗口左上角的位置(不含边框)
qDebug() << this->geometry().x() << this->geometry().y();
//窗口的宽度和高度(不含边框)
qDebug() << this->geometry().width() << this->geometry().height();//
qDebug() << this->width() << this->height();//
qDebug() << this->rect().width() << this->rect().height();//
qDebug() << this->size().width() << this->size().height();//
QT获取窗口大小和位置等信息的更多相关文章
- C# 图像处理: 获取当前活动窗口句柄,获取窗口大小及位置
需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport( ...
- js之获取窗口大小和位置信息
除IE外的浏览器查看窗口大小和位置信息: //The overall size of the browser window on the desktop var windowWidth = windo ...
- Qt获取控件位置,坐标总结
总结的结果是: QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标. 总结一:经过试验,QMouseEvent::globalPos() 和 QCursor::pos()效果 ...
- iOS下获取用户当前位置的信息
#import <MapKit/MKMapView.h> @interface ViewController (){ CLLocationManager *_currentLoaction ...
- qt 实现的电视遥控系统,如何让qt响应来自遥控器的按键信息?
结帖率 60% 如题:目前在做一个项目,使用qt实现一个类似于机顶盒的遥控系统,那么关键的问题来了,如何让qt响应遥控器的按键信息呢? 应该分两步吧:1.搭载qt的终端接收来自遥控器的按键信息,并解析 ...
- Qt 获取usb设备信息 hacking
/************************************************************************** * Qt 获取usb设备信息 hacking * ...
- windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息)
原文:windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息) 前几天做项目用到, 代码贴给大家. /// <summary> /// 获取当前位置的经纬度 ...
- 原生js--兼容获取窗口滚动条位置和窗口大小的方法
各个浏览器对获取获取窗口滚动条位置和窗口大小没有提供统一的API,以下是对其封装,解决兼容性问题 /** * 获取浏览器视口的大小(显示文档的部分) * */function getViewPort ...
- 使用 Qt 获取 UDP 数据并显示成图片
一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...
随机推荐
- CSS学习笔记07 盒子模型
1.盒子模型 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器.每个矩形都由元素的内容.内边距(padding).边框(border)和外边距(margin)组成. ...
- Web前端基础——jQuery(二)
一.jQuery 中的常用函数 1) $.map(Array,fn); 对数组中的每个元素,都用fn进行处理,fn将处理后的结果返回,最后得到一个数组 //因为这些操作,没有与dom元素相关的,所以可 ...
- switch和if语句
if :基本语法: 1.单分支语句 : if(条件){代码块}else{代码块} 2.多分支语句 :if(条件){代码块} else if(条件){代码块}else{代码块} * 不要忘记添加else ...
- NopCommerce 根据手机浏览器和桌面浏览器切换 Theme
自从 NopCommerce 升级到 3.x 以来,默认的 ViewName.Mobile.cshtml 方式就被响应式的默认 Theme 取代了. 但是在今天各种手机专用前端库大行其道的情况下,响应 ...
- Android 高德地图定位
创建Key 打开高德开发平台 → 我的应用 → 创建应用 → 创建新Key 说明: 1.发布版安全码获取:用自己的签名打包成apk安装软件,用SHA1工具查看 2.调试版安全码获取: 直接运行安装软件 ...
- Android FileUtils 文件操作类
系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...
- [iOS] WSHorizontalPickerView 图片水平滚动封装
之前这篇文章传送门本来是记录自己练手的demo的,后来很多人来问我要代码.今天就抽时间封装了一下,没有考虑太多情况,等我有空再去仔细考虑吧. 代码在:Github 用法很简单,创建对象,设置数据源,记 ...
- 软件工程-CMM与CMMI
CMM CMMI
- asp.net mvc5中的过滤器重写
asp.net mvc5中增加了一种过滤器类型叫过滤器重写,这种过滤器类型可以在操作或者控制器上忽略更高层次上设置的过滤器类型,它可以重写五种基本的过滤器接口类型:IAuthenticationFil ...
- MSSQL一种取代游标的方案
今天看到一篇文章写的自己整理记录下,据说比用游标快. DECLARE @字段1 数据类型; DECLARE @字段2 数据类型; DECLARE @TMP_WHILE_ID INT; ,),TMP_W ...