Qt绘图(好玩)

news2024/11/26 0:27:11

release下的exe文件流畅度要远好于debug下的exe文件。

 源码来源:基于Qt5模拟企业微信聊天界面(QWidget)_阿木大叔mu的博客-CSDN博客

 初看时,觉得很神奇,猫眼会随着鼠标移动。

看完源码后,感觉很精美。

 

 全是用painter画上去的,全是画pixmap。

关于画猫,画起来其实对我来说很困难。

他的源码如下:

先偏移(translate),再等比例缩放(scale)

之后就相当于在1920*1080大小的空间画图了。(因为图片是1920*1080像素的)

之后就是扣位置了。(我做不到这么细致)

通过改变参数m_fXRadio,m_fYRadio的大小改变眼睛的位置。

    painter->save();
    painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing, true);
    painter->translate(rectMain.left(), rectMain.top());
    painter->scale(rectMain.width() / 1920.0, rectMain.height() / 1080.0);

    QRect rcImgRain(0, 0, 1920, 1080);//彩虹
    QPixmap pRain = m_pixRain.scaled(rcImgRain.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgRain, pRain);

    QRect rcImgEyeBg(730, 335, 283, 162);//眼背景(黄)
    QPixmap pImgEyeBg = m_pixCatEyeBg.scaled(rcImgEyeBg.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgEyeBg, pImgEyeBg);

    //眼黑左
    QRect rcImgEyeBlackLeft(730 + 120 * m_fXRadio - 80 / 2, 335 + 120 * m_fYRadio - 82 /2, 80, 82);
    QPixmap pImgEyeBlack = m_pixCatEyeBlack.scaled(rcImgEyeBlackLeft.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgEyeBlackLeft, pImgEyeBlack);
    //眼白左
    QRect rcImgEyeWriteLeft(rcImgEyeBlackLeft.left() + 16, rcImgEyeBlackLeft.top() + 16, 20, 20);
    QPixmap pImgEyeWriteLeft = m_pixCatEyeWhite.scaled(rcImgEyeWriteLeft.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgEyeWriteLeft, pImgEyeWriteLeft);

    QRect rcImgEyeBlackRight(895 + 120 * m_fXRadio - 80 / 2, 387 + 120 * m_fYRadio - 82 /2, 80, 82);
    pImgEyeBlack = m_pixCatEyeBlack.scaled(rcImgEyeBlackRight.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgEyeBlackRight, pImgEyeBlack);

    QRect rcImgEyeWriteRight(rcImgEyeBlackRight.left() + 16 , rcImgEyeBlackRight.top() + 16, 20, 20);
    QPixmap pImgEyeWriteRight = m_pixCatEyeWhite.scaled(rcImgEyeWriteRight.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgEyeWriteRight, pImgEyeWriteRight);

    QRect rcImgCat(0, 0, 1920, 1080);
    QPixmap p = m_pixCat.scaled(rcImgCat.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    painter->drawPixmap(rcImgCat, p);

    painter->restore();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

09_Uboot启动流程_1

目录 链接脚本u-boot.lds详解 U-Boot启动流程详解 reset函数源码详解 lowlevel_init函数详解 s_init函数详解 链接脚本u-boot.lds详解 要分析uboot的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入…

【射影几何08】仿射映射

一、说明 简单来说,“仿射变换”就是:“线性变换”“平移”,但这是在笛卡尔坐标下的表现,然而在射影几何中,其中有更合乎逻辑的解释。本文讲仿射映射的定义,以及仿射不变性的特点。 二、仿射映射 2.1 直线…

2022 年全国硕士研究生入学统一考试英语(二)试题

2022年全国硕士研究生入学统一考试英语(二)试题 SectionⅠUse of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Harlan Coben believes tha…

ChatGPT诞生的新岗位:提示工程师(Prompt Engineer)

ChatGPT诞生的新岗位:提示工程师(Prompt Engineer) Prompt 工程师是什么? 是识别人工智能的错误和隐藏功能,以便开发者可以对这些发现进行处理。 如果你正在寻找科技领域最热门的工作,你可以尝试了解如何与AI聊天机…

分布式文件存储系统Minio使用总结

分布式文件存储系统Minio使用总结 1.分布式文件系统应用: 1.1、Minlo 介绍: Minlo 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、…

一篇文章带你了解抖音来客功能的使用方法和注意事项

抖音是近年来备受欢迎的社交媒体平台之一,其中的“来客”功能更是让许多人喜爱。那么什么是抖音来客呢?抖音来客是指在直播过程中,可以邀请其他抖音用户进行互动和参与,从而增加直播的热度和粉丝数量。下面不若与众科技就来介绍一…

FPGA - 7系列 FPGA内部结构之CLB -03- CLB相关原语以及应用

前言 本文节选UG474的第二章,进行整理翻译。CLB资源被FPGA综合工具自动有效地使用,不需要任何特殊的FPGA专用编码。一些HDL编码建议和技术可以帮助优化设计以获得最大效率。 设计检查清单 这些指南是为有效使用7系列CLB的设计建议提供的快速核对表。7…

阿里云服务器公网带宽计费模式选择方法(一篇搞定)

阿里云服务器公网带宽计费模式按固定带宽和按使用流量哪个划算?阿里云百科以北京地域为例,按固定带宽计费1M带宽一个月23元,按使用流量计费1GB流量0.8元,如果云服务器带宽使用率低于10%,那么首选按使用流量计费&#x…

springboot+vue心灵治愈交流平台(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的心灵治愈交流平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

【DAY48】移动端布局

const autoprefixer require(‘autoprefixer’) const pxtoviewport require(‘postcss-px-to-viewport’)module.exports { css: { loaderOptions: { postcss: { postcssOptions: { plugins: [ autoprefixer(), pxtoviewport({ viewportWidth: 375, // 视窗宽度&#xff0c…

MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案

MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案 翻译错误先正常制作表格错一遍(体验报错)找到报错原因,并改正其他可能造成报错的情况总结解决方案 翻译错误 经常遇到这个问题,今天我把这个问题记…

基于session实现共享登录

基于session实现登录 1.发送短信验证码 Override public Result sendCode(String phone, HttpSession session) {//1.校验手机号是否合规if (RegexUtils.isPhoneInvalid(phone)) {//2.不合规直接返回 错误信息return Result.fail("手机号错误");}//3.如果合规生成验…

Ubuntu 安装Samba

每次装ubuntu虚拟机搞开发都要装Samba,记录一下Samba安装方法: 1.输入安装指令 需要使用root权限进行samba的安装操作; 输入指令 : apt-get update apt-get install samba samba-common 2.配置Samba 输入指令修改 Samba配置 &…

GEE:变异系数法在遥感影像分析中的应用及权重计算

作者:CSDN @ _养乐多_ 本文介绍了在Google Earth Engine(GEE)平台上基于变异系数法的多指标加权遥感影像分析方法。该方法通过计算每个指标的平均值和标准差,进而计算变异系数来评估指标的变化程度。利用变异系数,我们可以计算每个指标的权重,并将其应用于加权和指数的计…

jieba分词(2):倒排索引算法

1 字典树 1.1问题描述 通过上一篇的案例我孟可以看出&#xff0c;我们的一句话会分出来很多的关键字&#xff0c;都给他建立<K,List<Id>> 我们的Map 里面将容纳非常多的元素&#xff01; 那我们往Map 集合里面放元素时&#xff0c;将有29 个被放进去&#xff01;…

leetcode:234.回文链表(详解)

前言&#xff1a;内容包括-题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&…

ZZS-7系列分闸、合闸、电源监视综合控制装置ZZS-7/1 ac220v

ZZS-7系列分闸、合闸、电源监视综合控制装置 系列型号&#xff1a; ZZS-7/1分闸、合闸、电源监视综合控制装置 ZZS-7/11分闸、合闸、电源监视综合控制装置 ZZS-7/12分闸、合闸、电源监视综合控制装置 ZZS-7/13分闸、合闸、电源监视综合控制装置 ZZS-7/14分闸、合闸、电源…

<Linux开发>系统移植 -之-使用buildroot构建BusyBox根文件系统

&#xff1c;Linux开发&#xff1e;系统移植 -之-使用buildroot构建BusyBox根文件系统 一、前言二、 buildroot 下载三、配置buildroot基础参数3.1 配置Target options3.2 配置Toolchain3.3 配置System configuration3.4 配置Filesystem images3.5 禁止编译 Linux 内核和 uboot…

音频大模型导读

1 介绍 本次分享包含音频压缩&#xff0c;语音识别&#xff0c;语音合成&#xff0c;以及近两年来大模型在音频领域的应用&#xff0c;涉及八篇论文和一个近期github霸榜的语音合成工具。 结果如下图所示&#xff1a;&#xff08;图链接&#xff1a;audio_llm&#xff09; 共…

Grafana 系列-统一展示-2-Prometheus 数据源

系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持。本文会介绍 Grafana Prometheus&#xff08;也包括 Prometheus 的兼容实现&#xff0c;如 Thanos, Mimir 等&#xff09; 数据源的部分选项、变量 (Variable)、查询 (Query) …