QLabel 显示圆图并且含有边框 border-image

news2024/11/25 17:18:03

 在一个label上流动显示头像,并且不能遮挡边框(如头像1-3),不想放两个label堆叠,所以最后采用了下述方法解决

1.设置边框还有图片

2.设置图片自适应

 

3.将头像切割成圆形

        QPixmap pixmap = QPixmap::fromImage(img);
        QPixmap image;

        int width = pixmap.width();
        int height = pixmap.height();
        QSize size(width, height);
        QBitmap mask(size);
        QPainter painter(&mask);
        painter.setRenderHint(QPainter::Antialiasing);
        painter.setRenderHint(QPainter::SmoothPixmapTransform);
        painter.fillRect(0, 0, size.width(), size.height(), Qt::white);
        painter.setBrush(QColor(0, 0, 0));
        int radiusValue = width < height ? width : height;
        radiusValue /= 2;
        painter.drawRoundedRect(0, 0, size.width(), size.height(), radiusValue, radiusValue);//修改这个值,可以改弧度,和直径相等就是圆形
        pixmap.setMask(mask);
        image = pixmap.scaled(m_luckySmilePicLabelList.at(0)->size());

4.最后显示就可以了。

但是这样会与个弊端,就是背景图要和控件大小适应,不然背景图会变形

 

如上,同样的背景图会因为拉伸变形,具体原因参考:QT之border-image属性_qt border-image_急行的小船的博客-CSDN博客

 我的总结就是,1.将控件分成了九宫格,2.将图片分成了九宫格3.将两个九宫格对应后根据需要进行拉伸、平铺、重复。

还有一种方法可以达到上述效果

QPixmap pixmap;
    pixmap.load(":/head/wx");
    QPixmap image;
    int width = ui->label_3->width();
    int height = ui->label_3->height();
    QSize size(width, height);
    QBitmap mask(size);
    QPainter painter(&mask);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setRenderHint(QPainter::SmoothPixmapTransform);
    painter.fillRect(0, 0, size.width(), size.height(), Qt::white);
    painter.setBrush(QColor(0, 0, 0));
    int radiusValue = size.width() < size.height() ? size.width() : size.height();
    radiusValue /= 2;
    radiusValue -= 20;
    painter.drawRoundedRect(14, 35, size.width() - 35, size.height() - 50, radiusValue, radiusValue);//修改这个值,可以改弧度,和直径相等就是圆形
    image = pixmap.scaled(size);
    image.setMask(mask);
    ui->label_3->setPixmap(image);

结果如图中上部显示,截取的圆不是原图片的内切圆,是从中间截取的,此种方法显示的图片确实信息会比较多。

ui->label_3->setStyleSheet("border-image: url(:/head/wx) 10 10 10 10 stretch stretch;""border-left:20px;""border-right:20px;""border-top:20px;""border-bottom:20px;");

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

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

相关文章

微信创建会员卡-47001错误

文档&#xff1a;1.新版会员卡介绍 | 微信开放文档 错误&#xff1a; 47001解析 JSON/XML 内容错误 接口&#xff1a; HTTP请求方式: POSTURL:https://api.weixin.qq.com/card/create?access_tokenACCESS_TOKEN 原因&#xff1a; 参数设置错误&#xff1a;["swipe_car…

JavaScript的基本数据类型如何使用?

JavaScript中的数据类型分为两大类&#xff0c;分别是基本数据类型和复杂数据类型(或称为引用数据类型)&#xff0c;如图所示。 本节重点讲解基本数据类型。下面我们用代码演示基本数据类型的使用。 (1)数字型(Number)&#xff0c;包含整型值和浮点型值: var numl 21; …

清华智能体宇宙火了;主流大语言模型的技术原理细节

&#x1f989; AI新闻 &#x1f680; 清华智能体宇宙火了 摘要&#xff1a;清华大学联合北邮、微信团队推出了AgentVerse&#xff0c;这是一个可以轻松模拟多智能体宇宙的环境。它专为大语言模型开发&#xff0c;智能体可以利用LLM能力完成任务。AgentVerse提供了几个示例环境…

谷歌翻译API接口,翻译API接口,翻译API接口申请指南

Google翻译API是一种可以在多个平台上使用的Web服务&#xff0c;通过使用该API&#xff0c;用户可以将任何文本转换成多种语言&#xff0c;同时也可以将多种语言转换成用户指定的语言。目前Google翻译API支持超过100种语言&#xff0c;涵盖了全球范围内的所有主流语言。 Googl…

gradio的基础教程

接口 gradio.Interface(fn, inputs, outputs, ) 描述 界面是Gradio的主要高级类&#xff0c;允许您在几行代码中围绕机器学习模型&#xff08;或任何Python函数&#xff09;创建基于Web的GUI /演示。您必须指定三个参数&#xff1a;&#xff08;1&#xff09; 为 &#xff08;…

怎么科学管理固定资产呢

在当今的商业环境中&#xff0c;固定资产的管理是企业成功的关键因素之一。然而&#xff0c;传统的固定资产管理方法往往过于繁琐&#xff0c;缺乏创新&#xff0c;导致资源的浪费和效率的低下。因此&#xff0c;我们需要一种新的、更加科学的方法来管理我们的固定资产。本文将…

QT基础教程(GUI程序原理分析)

文章目录 前言一、命令行应用程序的特点二、图形界面应用程序的特点三、图形界面程序适用场景总结 前言 本篇文章正式带大家开始学习QT基础部分的内容&#xff0c;后面将更新一套完整的QT教程&#xff0c;包括QT基础&#xff0c;QT进阶&#xff0c;QT项目&#xff0c;QT企业级…

webpack打包速度优化

优化WebPack打包速度 在开发过程中&#xff0c;WebPack的打包速度是一个非常重要的考虑因素。随着项目规模的增长&#xff0c;打包时间也会越来越长&#xff0c;影响开发效率和用户体验。本文将循序渐进地介绍一些优化WebPack打包速度的方法&#xff0c;先分析打包瓶颈&#x…

ARM Linux DIY(九)陀螺仪调试

前言 今天调试六轴陀螺仪 MPU6050 硬件 硬件很简单&#xff0c;使用 I2C 接口&#xff0c;并且没有使用中断引脚。 焊接上 MPU6050 芯片和上拉电阻、滤波电容。 检测 MPU6050 是挂在 I2C-0 上的&#xff0c;I2C-0 控制器的驱动已 OK&#xff0c;所以直接使用 I2C-0 检测 …

hive工具-zeppelin部署

zeppelin部署 解压安装包至/opt/soft 并改名 /etc/proofile中配置环境变量并source生效 #ZEPPELIN export ZEPPELIN_HOME/opt/soft/zeppelin010 export PATH$ZEPPELIN_HOME/bin:$PATH &#xff08;1&#xff09;conf目录下拷贝一份初始配置文件 [rootkb129 conf]# pwd /opt/s…

Springboot传输数据时日期格式化

使用swagger测试数据时 第一种在实体类属性值上加入 这种方式简单&#xff0c;但是只能为单纯这个类&#xff0c;每个类上要使用都必须加 JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")private LocalDateTime createTime;JsonFormat(pattern "yyyy-MM-dd HH:m…

树、二叉树概念(+堆的实现)

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言1.树的概念2.二叉树概念及结构2.1数据结构中的二叉树2.2两个特殊的二叉树2.2.1满二叉树结点和层数的关系2.2.2完全二叉树高度为H节点范围 …

【python绘图—colorbar操作学习】

文章目录 Colorbar的作用Colorbar的操作截取cmap拼接cmap双刻度列colorbar 引用 Colorbar的作用 Colorbar&#xff08;颜色条&#xff09;在绘图中的作用非常重要&#xff0c;它主要用于以下几个方面&#xff1a; 表示数据范围&#xff1a; Colorbar可以显示图中的颜色映射范围…

基于PHP的医药博客管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的医药博客管理系统 一 介绍 此医药博客系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。用户可注册登录&#xff0c;查看/评论/搜索博客&#xff0c;建议留言。管理员可对用户&a…

uni-app:单页面的页面切换

效果 代码 <template><view><view class"tab-bar"><text class"tab" :class"{ active: activeTab 0 }" click"changeTab(0)">页面1</text><text class"tab" :class"{ active: acti…

【SpringCloud微服务全家桶学习笔记-服务注册zookeeper/consul】

SpringCloud微服务全家桶学习笔记 Eureka服务注册 gitee码云仓库 9.其他服务注册框架 &#xff08;1&#xff09;zookeeper安装与使用 zookeeper需安装在虚拟机上&#xff0c;建议使用CentOS&#xff0c;安装地址如下&#xff1a; zookeeper镜像源 选择第一个进入后下载ta…

文本直接生成20多种背景音乐,免费版Stable Audio来了!

9月14日&#xff0c;著名开源平台Stability AI在官网发布了&#xff0c;音频生成式AI产品Stable Audio。&#xff08;免费使用地址&#xff1a;https://www.stableaudio.com/generate&#xff09; 用户通过文本提示就能直接生成摇滚、爵士、电子、嘻哈、重金属、民谣、流行、朋…

java复习-线程的同步和死锁

线程的同步和死锁 同步问题引出 当多个线程访问同一资源时&#xff0c;会出现不同步问题。比如当票贩子A&#xff08;线程A&#xff09;已经通过了“判断”&#xff0c;但由于网络延迟&#xff0c;暂未修改票数的间隔时间内&#xff0c;票贩子B&#xff08;线程B&#xff09;…

2023全新云渲染测评!效果图渲染哪个平台性价比更高?

&#xfeff; 近期我们的青团平台全新上线了&#xff01;“青团平台”是专为效果图渲染用户量身打造的全新云渲染平台。目前平台活动力度很大&#xff0c;充值后单图最高优惠低至2元封顶&#xff0c;非常具有性价比。接下来&#xff0c;我将对比我们的青团平台和另外两个平台&…

远程桌面工具

PRemoteM 是一款现代的远程会话管理和启动器&#xff0c;它让你能够在任何时候快速开启一个远程会话。目前 PRemoteM 已支持 微软远程桌面(RDP)、VNC、SSH、Telnet、SFTP, FTP, RemoteApp等协议。 图片 1 PRemoteM 简介 如果你远程连接windows桌面仍旧在使用winR&#xff0c;输…