Qt实现圆型控件的三种方法之子类化控件并重写paintEvent

news2024/9/30 14:40:56

前言

最近在研究绘制各种形状的控件,这里专门挑出圆形的控件进行记录,其它形状的也大差不差,会了圆形的之后其它的也类似。

正文

这里我挑出Label来进行举例。

子类化 QLabel 并重写 paintEvent

如果需要更复杂的自定义绘制,可以通过子类化 QLabel 并重写 paintEvent 函数来实现。

void CircleLabel::paintEvent(QPaintEvent *event)
{

    QPainter painter(this);

    // 设置抗锯齿
    painter.setRenderHint(QPainter::Antialiasing);
    //载入图像
    QPixmap pixmap(":/images/faceBackground.PNG");
    // 创建圆形路径
    QPainterPath path;

    path.addEllipse(0, 0, width(), height());
    painter.setClipPath(path);
    // 填充背景颜色
    painter.fillPath(path, QBrush(QColor("#f7f7f7")));
    //绘制图像

    painter.drawPixmap(rect(),pixmap);
    // 调用父类的 paintEvent 以绘制文本
    QLabel::paintEvent(event);

}

在这里插入图片描述

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

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

相关文章

医疗器械维修技术——开启成功之门的钥匙

随着现代医疗科技的飞速发展,医疗器械的精密程度和复杂性与日俱增。这些高科技的医疗设备,不仅是医生诊断和治疗疾病的得力助手,更是患者重获健康的希望之光。然而,如同任何复杂的机器一样,医疗器械也难免会出现故障和…

DRF——视图类的继承关系功能梳理(APIView,GenericAPIView,GenericViewSet,五大mixin类,)

文章目录 视图APIViewGenericAPIView(将数据库查询、序列化类的定义提取到类变量)GenericViewSet(继承ViewSetMixin和GenericAPIView)五大类(List,Create,Retrieve,Update,Destory)ModelViewSet&#xff08…

【网络安全】15种常见网络攻击类型及防御措施_

随着攻击者效率和复杂性的提高,网络犯罪每年都在急剧增加。网络攻击的发生有多种不同的原因和多种不同的方式。但是,一个共同点是网络犯罪分子会寻求利用组织的安全策略、实践或技术中的漏洞。 什么是网络攻击? 网络攻击是指攻击者出于盗窃…

页面设计任务 个人网站页面

目录 成品: 任务描述 源码: 详细讲解: 1.导航栏部分 2.主页样式部分 3.关于我部分 4.作品集部分 5.联系我部分 6.页脚部分 成品: 任务描述 创建一个个人网站,包含以下部分: 顶部导航栏:包含多个链接&#…

数字人直播软件开发技术有哪些?一文教你摸透行情!

当前,开发数字人直播软件已经成为数字人赛道的重要入局方式,与之相关的数字人直播软件开发技术有哪些等话题的讨论的更是随着时间的推移不断攀升。毕竟,对于创业者而言,不管是打算自行开发,还是选择寻求数字人源码厂商…

微积分-定积分4.5(换元法则)

由于基本定理(Fundamental Theorem of Calculus)的缘故,能够找到反导函数(即反微分)是非常重要的。但我们现有的反导函数公式并没有告诉我们如何计算类似以下形式的积分: ( 1 ) ∫ 2 x 1 x 2 d x (1) \qua…

神经网络算法 - 一文搞懂BERT(基于Transformer的双向编码器)

本文将从BERT的本质、BERT的原理、BERT的应用三个方面,带您一文搞懂Bidirectional Encoder Representations from Transformers | BERT。 Google BERT BERT架构: 一种基于多层Transformer编码器的预训练语言模型,通过结合Tokenization、多种E…

贪心算法-最大容量问题

最大容量问题的贪心解法 目录 最大容量问题的贪心解法问题描述问题分析贪心策略代码实现(C)总结C学习资源 问题描述 给定一个数组ht,其中的每个元素代表一个垂直隔板的高度。我们可以通过任意两个隔板以及它们之间的空间来组成一个容器。容器…

PostgreSQL16.1(Linux版本离线下载)

1、将数据库压缩包和对应的依赖包上传到对应的目录下。 2、解压数据库文件。 3、解压libicu依赖文件,有两个看对应的版本能装上去即可。 4、进入解压数据库文件的该目录后执行此命令: ./configure --prefix=/usr/local/pgsql 5、输入“make && make install”命令,…

SQL-DCL-数据控制语言

一、 DCL-管理用户 二、DCL-权限控制 一、 DCL-管理用户,主要是DBA数据库管理员使用,开发使用较少 # 1、查询用户 use mysql; show tables; desc user; select * from user; # host为主机地址, 主机地址和用户名确定唯一性# 2、创建用户 create user itcastlocalh…

有哪些好用的文献翻译器推荐?中英文文献翻译软件一览

在平时的生活中,我常常需要阅读一些中英文的文献资料。面对那些生涩难懂的专业术语和复杂的句式结构,我时常感到头疼。 幸运的是,有了中英文文献翻译软件,我的阅读之旅变得轻松了许多。这些软件就像是我的语言助手,帮…

<数据集>航拍牧场奶牛识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1805张 标注数量(xml文件个数):1805 标注数量(txt文件个数):1805 标注类别数:1 标注类别名称:[cow] 序号类别名称图片数框数1cow1805141337 使用标注工具&#xff…

黑神话悟空无法登录服务器怎么办

黑神话悟空游戏在登录的时候会遇到无法登录服务器的问题,玩家可以采用一些有效的方法进行解决,其中最主要的措施就是优化网络环境和减少网络干扰。Rak小编为您整理黑神话悟空无法登录服务器如何解决的步骤及注意事项。 优化网络环境 1、当游戏无法登录服…

Android Compose 下拉选择框 ExposedDropdownMenu下拉选择

/*** author 创建人&#xff1a;蒙石瑞* date 创建时间&#xff1a;2024/8/23 10:57* Description 创建内容&#xff1a;下拉选择框*/ OptIn(ExperimentalMaterial3Api::class) Composable fun CustomExposedDropdownMenu(options: List<out DropdownMenuDes>,l…

LLM大模型GPT4o

看图&#xff01; 看图&#xff01; 预训练与微调是现代深度学习模型&#xff0c;特别是自然语言处理模型&#xff0c;常用的两个阶段。 预训练&#xff1a; 在这个阶段&#xff0c;模型在大量的广泛文本数据上进行训练&#xff0c;学习语言的基本结构、语法、词汇和上下文关…

解决使用uniapp时,uni.switchTab跳转标签页面不刷新的问题

我们在使用uni.switchTab跳转到标签页面时&#xff0c;并不会触发这个标签页面的onLoad方法。这是因为在 uni-app中&#xff0c;uni.switchTab用于跳转到指定的标签&#xff08;tab&#xff09;页面。由于标签页面是单实例的&#xff0c;即无论何时切换到该标签页面&#xff0c…

Java二十三种设计模式-解释器模式(23/23)

本文深入探讨了解释器模式&#xff0c;这是一种行为设计模式&#xff0c;用于构建和解释执行自定义语言&#xff0c;提供了实现方法、优点、缺点、与其他模式的比较、最佳实践和替代方案的全面分析&#xff0c;帮助开发者在实际应用中做出明智的设计选择。 解释器模式&#xff…

uniapp(微信小程序如何使用单选框、复选框)

一、先看效果 二、数据结构 说明&#xff1a;selected用来记录每次用户选择的值&#xff0c;当是单选的时候属性中的selected属性需要设置成字符串&#xff0c;当是复选框的时候&#xff0c;此时选择的是数组&#xff0c;selected属性应设置为数组。type用来区分当前是单选还是…

《爬虫+大模型》到底有没有搞头?

最近在学习大模型&#xff0c;之前我是干过一段时间爬虫&#xff0c;在学习大模型的过程中&#xff0c;突发奇想能不能把大模型的能力结合爬虫&#xff0c;搞个AI爬虫玩一玩。 说干就干&#xff0c;先测试一下大模型的数据提取能力 <table width"100%" class&qu…

增强管道数据流转(EPDR)技术的设计局限和替代

在前文中&#xff0c;我们介绍了EPDR技术的起源&#xff0c;以及使用该技术驱动的业余软件无线电平台专栏。已有玩家通过踩坑证明&#xff0c;进程管道交换数据时间延迟大&#xff0c;构造时间敏感系统难。除非采用传统的紧耦合设计及更大的颗粒度&#xff0c;否则很难在期望的…