Qt5学习之位置函数

1、定义

x()、y()、pos() ->整个窗体左上角的坐标位置;
frameGeometry() ->整个界面的左上角点、及长宽;
geometry()->中心区域的左上角点、及长宽;
size()->中心区域的大小;
rect()->中心区域的左上角点(0,0)与长宽;

2、代码

2.1 头文件

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_GraphicsAndPictures.h"
#include <qlabel.h>
#include <qlayout.h>class GraphicsAndPictures : public QMainWindow
{Q_OBJECTpublic:GraphicsAndPictures(QWidget *parent = Q_NULLPTR);void design_ui();void updateLabel();private:Ui::GraphicsAndPicturesClass ui;QLabel* xLabel;QLabel* yLabel;QLabel* posLabel;QLabel* frameLabel;QLabel* geometryLabel;QLabel* widthxLabel;QLabel* heightLabel;QLabel* rectLabel;QLabel* sizeLabel;QLabel* xLabel2;QLabel* yLabel2;QLabel* posLabel2;QLabel* frameLabel2;QLabel* geometryLabel2;QLabel* widthxLabel2;QLabel* heightLabel2;QLabel* rectLabel2;QLabel* sizeLabel2;QGridLayout* mainLayout;protected:void moveEvent(QMoveEvent*);  // 重写void resizeEvent(QResizeEvent*);
};

2.2 源文件

#include "GraphicsAndPictures.h"
#pragma execution_character_set("utf-8")
#include <qlayout.h>GraphicsAndPictures::GraphicsAndPictures(QWidget *parent): QMainWindow(parent)
{setWindowTitle("报告位置");resize(360, 600);/*ui.setupUi(this);*/design_ui();updateLabel();}void GraphicsAndPictures::design_ui()
{QWidget* widget = new QWidget();this->setCentralWidget(widget);xLabel = new QLabel("x():");yLabel = new QLabel("y():");posLabel = new QLabel("pos():");frameLabel = new QLabel("Frame():");geometryLabel = new QLabel("Geometry():");widthxLabel = new QLabel("Width():");heightLabel = new QLabel("Height():");rectLabel = new QLabel("Rect():");sizeLabel = new QLabel("size():");xLabel2 = new QLabel("0");yLabel2 = new QLabel("0");posLabel2 = new QLabel("0,0");frameLabel2 = new QLabel("0,0,0,0");geometryLabel2 = new QLabel("0,0,0,0");widthxLabel2 = new QLabel("0");heightLabel2 = new QLabel("0");rectLabel2 = new QLabel("0,0,0,0");sizeLabel2 = new QLabel("0,0");mainLayout = new QGridLayout();mainLayout->addWidget(xLabel, 0, 0);mainLayout->addWidget(yLabel, 1, 0);mainLayout->addWidget(posLabel, 2, 0);mainLayout->addWidget(frameLabel, 3, 0);mainLayout->addWidget(geometryLabel, 4, 0);mainLayout->addWidget(widthxLabel, 5, 0);mainLayout->addWidget(heightLabel, 6, 0);mainLayout->addWidget(rectLabel, 7, 0);mainLayout->addWidget(sizeLabel, 8, 0);mainLayout->addWidget(xLabel2, 0, 1);mainLayout->addWidget(yLabel2, 1, 1);mainLayout->addWidget(posLabel2, 2, 1);mainLayout->addWidget(frameLabel2, 3, 1);mainLayout->addWidget(geometryLabel2, 4, 1);mainLayout->addWidget(widthxLabel2, 5, 1);mainLayout->addWidget(heightLabel2, 6, 1);mainLayout->addWidget(rectLabel2, 7, 1);mainLayout->addWidget(sizeLabel2, 8, 1);widget->setLayout(mainLayout);
}void GraphicsAndPictures::updateLabel()
{QString xStr;  // 获得x()函数的结果xLabel2->setText(xStr.setNum(x()));  // x()QString yStr;yLabel2->setText(yStr.setNum(y()));QString positionStr;  // pos()函数QString posStr1, posStr2;positionStr = posStr1.setNum(pos().x()) + "," + posStr1.setNum(pos().y());posLabel2->setText(positionStr);QString frameStr;  // 获得frameGeometry()函数的结果QString tempStr1, tempStr2, tempStr3, tempStr4;frameStr = tempStr1.setNum(frameGeometry().x()) + "," +tempStr2.setNum(frameGeometry().y()) + "," +tempStr3.setNum(frameGeometry().width()) + "," +tempStr4.setNum(frameGeometry().height());frameLabel2->setText(frameStr);QString geoStr;  // 获得Geometry()函数的结果QString geoStr1, geoStr2, geoStr3, geoStr4;geoStr = geoStr1.setNum(geometry().x()) + "," +geoStr2.setNum(geometry().y()) + "," +geoStr3.setNum(geometry().width()) + "," +geoStr4.setNum(geometry().height());geometryLabel2->setText(geoStr);QString widthStr, heightStr;  // width() 与 height()widthxLabel2->setText(widthStr.setNum(width()));heightLabel2->setText(heightStr.setNum(height()));QString rectStr;  // 获得rect()函数的结果QString rectStr1, rectStr2, rectStr3, rectStr4;rectStr = rectStr1.setNum(rect().x()) + "," +rectStr2.setNum(rect().y()) + "," +rectStr3.setNum(/*rect.width()*/width()) + "," +rectStr4.setNum(height()/*rect.height()*/);rectLabel2->setText(rectStr);QString sizeStr;  // 获得size()函数的结果QString sizeStr1, sizeStr2;sizeStr = sizeStr1.setNum(size().width()) + "," +sizeStr2.setNum(size().height());sizeLabel2->setText(sizeStr);
}// 重新定义QWidget的moveEvent()函数
void GraphicsAndPictures::moveEvent(QMoveEvent*)
{updateLabel();
}void GraphicsAndPictures::resizeEvent(QResizeEvent*)
{updateLabel();
}

3、结果展示

Qt5学习之位置函数相关推荐

  1. 我的QT5学习之路(目录)

    说明:本目录内容为自己学习的心得和记录,参考资料来源于网络,学习过程中多方汲取,如有错误,欢迎指正和批评. Qt开发相关文章目录 一.我的Qt学习之路系列 1.[笔记]我的Qt学习之路(一)--浅谈Q ...

  2. Qt5学习笔记之零碎问题记录

    目录 概述 1.qDebug输出问题 1.1 qDebug() << "OK"报错 1.2 qDebug打印QString类型 2.QString字符串的操作 3.修改 ...

  3. Qt5学习笔记之串口助手四:增加16进制/ASCII切换、周期发送

    目录 1. 概述 2. 16进制/ASCII发送 2.1 功能实现 2.2 界面修改 3. 接收框显示发送内容 3.1 以16进制/ASCII显示 3.1.1 界面修改 3.1.2 功能实现 3.2 ...

  4. Qt5学习笔记之QString的使用

    目录 概述 2.QString字符串的操作 2.1 拼接 2.2 裁剪 2.3 转换为int型 2.4 int转换为QString 2.5 小写字母大写字母转换 2.6 转换为16进制 概述 学习过程 ...

  5. Qt5学习笔记之串口助手三:打包成Windows软件

    这里写目录标题 添加图标 打包程序 测试打包好的软件 添加图标 图标的获取可以参考我的另一篇文章:Qt5学习笔记之图标下载和转换,这里只记录下Qt中使用图标的方法. 1.切换到release模式下进行 ...

  6. Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件

    Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件 这次任务要完成弹出窗口及QSlider控件的界面设计及代码编写 一.Qt5弹出窗口 1.界面式布局 建立项目工程文件 ...

  7. Qt5 学习之路及嵌入式开发教程21:QML基础

    Qt5 学习之路及嵌入式开发教程21:QML基础 一.启动Qt5.12 1.新建项目文件,进入界面 2.选择后 3.几个下一步后,点击完成: 4.运行,查看结果 二.在窗口中绘制一个矩形 1.在tit ...

  8. Qt5 学习之路及嵌入式开发教程4:代码编写实现信号槽例子

    Qt5 学习之路及嵌入式开发教程4:代码编写实现信号槽例子 整体设计思路: 第一步:先设置整体界面控件的位置及大小: 第二步:添加代码,实现信号槽功能: 第三步:调试运行程序,实现程序功能. 一.整体 ...

  9. c gui qt 4编程第二版_我的QT5学习之路(一)——浅谈QT的安装和配置

    一.前言 说到Qt,不能不说到C++,这门伟大的语言.因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力.Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大 ...

最新文章

  1. linux mysql innodb_MySQL innoDB 存储引擎学习篇
  2. 寄存器和常用的汇编指令
  3. POJ3450 Corporate Identity —— 后缀数组 最长公共子序列
  4. myeclipse不编译
  5. 德国汽车厂发生机器人杀人事件 人机协作是大势所趋
  6. Autofac框架初识与应用
  7. C语言 const 修饰变量 - C语言零基础入门教程
  8. 7-65 藏头诗 (15 分)
  9. [转]各种互斥量的总结
  10. 教资支付显示找不到服务器,教师资格证报名支付的问题,点了支付总是找不到服..._教师资格考试_帮考网...
  11. DDL DML DCL 简介
  12. weblogic domain的安装与配置
  13. C++ 中两个数据交换总结
  14. 广度优先搜索 解决九宫格问题
  15. 基于浏览器扩展程序脚本和IDM提高下载速度
  16. 基于微信旅游景区购票小程序毕业设计毕设作品(5)开题报告答辩PPT
  17. 漫谈 | 据说搞区块链的人都觉得自己是“上帝
  18. Ubound Lbound,数组上下边界 将二维数组处理后写入新数组,并粘贴到单元格中。
  19. 文字动态发光特效代码简单实现
  20. 无线连接服务器678,上网显示,“错误678,远程服务器~”是什么意思,怎么处理?...

热门文章

  1. 数据集成-5-批数据集成
  2. 使用基于ThinkPHP3.2.3的ThinkAdmin创建手机电脑通用的表白墙(七)优化:访问控制
  3. 数据分析:数据处理篇1
  4. 08-02-loggin-模块
  5. 据说优秀的程序员都是这样送新年祝福的?
  6. 简单方法适配IphoneXS Iphone XR IphoneXS MAX
  7. ado连接oracle数据库帮助类,MFC ADO连接Oracle12c数据库 类库文件
  8. Redisson(2-3)分布式锁实现对比 VS Java的ReentrantLock的FairLock
  9. 【BlueZ】【蓝牙】跨平台实现Ble MasterSlaveMesh 之Linux篇-1
  10. you-get下载优酷视频报错:用户账户异常、请重新登录