若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79163130
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:实用技巧(点击传送门)

需求

对三个组合矩形进行比例变化,Demo实现效果如下:

原理解说图

关键代码

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.save();painter.setPen(Qt::black);int rectx = _rectx + _dx;int recty = _recty + _dy;int rectWidth = _rectWidth/(float)_width*(_width+_dwidth);int rectHeight = _rectHeight/(float)_height*(_height+_dheight);painter.drawRect(rectx, recty, rectWidth, rectHeight);painter.restore();painter.save();painter.setPen(Qt::red);int rect2x = _rectx + _dx + (_rect2x-_rectx)/(float)_rectWidth*rectWidth;int rect2y = _recty + _dy + (_rect2y-_recty)/(float)_rectHeight*rectHeight;int rect2Width = _rect2Width/(float)_rectWidth*rectWidth;int rect2Height = _rect2Height/(float)_rectHeight*rectHeight;painter.drawRect(rect2x, rect2y, rect2Width, rect2Height);painter.restore();painter.save();painter.setPen(Qt::blue);int rect3x = _rectx + _dx + (_rect3x-_rectx)/(float)_rectWidth*rectWidth;int rect3y = _recty + _dy + (_rect3y-_recty)/(float)_rectHeight*rectHeight;int rect3Width = _rect3Width/(float)_rectWidth*rectWidth;int rect3Height = _rect3Height/(float)_rectHeight*rectHeight;painter.drawRect(rect3x, rect3y, rect3Width, rect3Height);painter.restore();
}

原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79163130

Qt实用技巧:组合图形的比例变换相关推荐

  1. Qt实用技巧:Qt窗口置顶

    若该文为原创文章,未经允许不得转载 原博主博客地址:长沙红胖子Qt C++ Linux Arm_长沙红胖子_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主 原博主博客导航:红胖子( ...

  2. Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)

    若该文为原创文章,未经允许不得转载 原博主博客地址:长沙红胖子Qt的博客_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主 原博主博客导航:红胖子网络科技博文大全:开发技术集合(包含 ...

  3. Qt实用技巧:使用QMediaPlayer和Windows自带组件播放swf、rmvb、mpg、mp4等视频文件

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  4. Qt实用技巧:VS2017编写纯C库以及使用Qt调用C库方法

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  5. Qt实用技巧:使用Qt加载超大图片的耗时测试

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  6. Qt实用技巧:QtCreator编辑区关闭右侧不必要的警告提示

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/124986234 红胖子(红模仿)的博文大全:开发技术集 ...

  7. Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113030404 长期持续带来更多项目与技术分 ...

  8. Qt实用技巧:QLineEdit限制只能输入Ip地址,且一直显示ip地址分段的“.”

    若该文为原创文章,未经允许不得转载 原博主博客地址::http://blog.csdn.net/qq21497936 原博主博客导航:http://blog.csdn.net/qq21497936/a ...

  9. Qt实用技巧:在Qt中获取屏幕的绝对坐标

    若该文为原创文章,未经允许不得转载 原博主博客地址::http://blog.csdn.net/qq21497936 原博主博客导航:http://blog.csdn.net/qq21497936/a ...

最新文章

  1. 零基础学习大数据开发需要多久能工作?
  2. 《bbs.yingjiesheng.com,超全的求职笔经面经论坛》
  3. 【转载】同步和互斥的POSIX支持(互斥锁,条件变量,自旋锁)
  4. vray学习笔记(3)-多维子材质是个什么东西
  5. access数据库为什么一直登陆_为什么要养成用Access数据库保存数据的习惯?
  6. 单机单网卡最大tcp长连接数真的是65535吗?
  7. Linux系统间文件双向同步搭建Unison版
  8. Matlab--Monte Carlo simulation
  9. 项目疑难杂症记录(四):Activity被重新创建的原因分析
  10. HealthKit教程 Swift版:锻炼信息
  11. React开发环境搭建
  12. 5 个底层程序设计逻辑,决定你有多牛逼
  13. 教你怎样做项目开发总结报告[转]
  14. [Android] 任意时刻从子线程切换到主线程的实现原理及加强版
  15. 学习自己动手设计数据库
  16. android访问win10共享文件夹,用手机es文件浏览器访问win10系统共享文件的方法
  17. python导入数学函数_Python 数学函数模块(Math)
  18. 调用阿里云语音合成Python版SDK
  19. KF、EKF、IEKF、UKF卡尔曼滤波器
  20. 简述在android中如何发送广播消息,Android Intent发送广播消息实例详解

热门文章

  1. Arduino实现使用超声波模块测距
  2. 使用爬虫实现代理IP池之放弃篇
  3. 用FPC翻译海康SDK头文件,供Delphi和Lazarus使用
  4. 医学自然语言处理(NLP)相关论文汇总之 EMNLP 2021
  5. 自学计算机应该从什么开始?如何自学?推荐学什么语言?
  6. 聚合支付哆啦宝并入京东数科 原股东悉数退出
  7. Machine Learning之高等数学篇(二)☞《导数、极值、最值》
  8. 用计算机算判定系数,使用系数
  9. Matlab 仿真——单自由度倒立摆(3)PID控制器设计
  10. Db2干净卸载Linux,如何在Linux下干净卸载db2数据库