QT 在label上透明绘图
一、新建TransparentDemo工程

二、在界面上添加label,修改样式表,将底色置为红色,作为北京

三、新建一个TransparentLabel类,继承自QLabel

此时,工程包括文件

五、在transparentlabel.h中添加
头文件
#include <QLabel>
#include <QPainter>
添加构造函数
TransparentLabel(QWidget *parent=nullptr);
添加重绘函数paintEvent
void paintEvent(QPaintEvent *) override;
如下图
#ifndef TRANSPARENTLABEL_H
#define TRANSPARENTLABEL_H#include <QLabel>
#include <QPainter>
class TransparentLabel : public QLabel
{
public:TransparentLabel();TransparentLabel(QWidget *parent=nullptr);
protected:void paintEvent(QPaintEvent *) override;
};#endif // TRANSPARENTLABEL_H
六、在transparentlabel.cpp中实现构造函数和重绘函数,如下
#include "transparentlabel.h"TransparentLabel::TransparentLabel()
{}
TransparentLabel::TransparentLabel(QWidget* parent):QLabel(parent){}void TransparentLabel::paintEvent(QPaintEvent *){//读取图片路径QString imagePath= "D:\\picture\\ming3.png";//读取图片QPixmap pixmap(imagePath);//获取当前label的大小QRect rect=this->geometry();//将图像大小缩放适合labelQPixmap scaledPixmap = pixmap.scaled(QSize(rect.width(),rect.height()));//在label上绘图QPainter painter(this);//设置透明度painter.setOpacity(0.4);//绘图painter.drawPixmap(0, 0,scaledPixmap);//将此label放在最上层this->raise();
}
七、在ui文件中添加 “添加图片” 按钮

八、在mainwindow.h中添加头文件和transparentlabel成员、添加图片按钮槽函数
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <transparentlabel.h>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;TransparentLabel *transparentLabel;
};
#endif // MAINWINDOW_H
九、在mainwindow.cpp中实现按钮槽函数,并且在构造函数中初始化transparentLabel变量,隐藏
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);transparentLabel = new TransparentLabel(this);transparentLabel->hide();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{QRect label_geometry=ui->label->geometry();//获取label大小transparentLabel->setGeometry(label_geometry);//设置透明label的位置transparentLabel->show();//显示
}
十、运行效果,点击之后在红色背景label上显示透明的图像
20230801_155459
相关文章:
QT 在label上透明绘图
一、新建TransparentDemo工程 二、在界面上添加label,修改样式表,将底色置为红色,作为北京 三、新建一个TransparentLabel类,继承自QLabel 此时,工程包括文件 五、在transparentlabel.h中添加 头文件 #include …...
SAM(Segment Anything)大模型论文汇总
A Comprehensive Survey on Segment Anything Model for Vision and Beyond 论文:https://arxiv.org/abs/2305.08196 25页综述,198篇参考文献!52个开源项目!本文第一个全面回顾了分割一切模型(SAM)的研究和应用进展,…...
金融翻译难吗,如何做好金融翻译?
我们知道,金融翻译涉及企业经济这块的,是影响各公司发展很重要的一方面,翻译做得好,可以促进公司内外的交流,及时掌握各种信息,做好应对。那么,金融翻译难吗,如何做好金融翻译&#…...
Java面试题(Tomcat与Nginx)
Tomcat 什么是Tomcat? 简单来说是一个运行Java的网络服务器,也是jsp和serlvet的一个容器 Tomcat的缺省端口是多少,怎么修改? conf文件夹下修改server.xml文件 <Connector connectionTimeout"20000" port"8080" p…...
React-使用mobx
React 中使用 mobx 配置开发环境 安装mobx和中间件工具 mobx-react-lite 只能函数组件中使用 yarn add mobx mobx-react-lite初始化 mobx 定义数据状态 state在构造器中实现数据响应式处理 makeAutoObservble定义修改数据的函数 action实例化 store 并导出 import { compute…...
LeetCode ACM模式——哈希表篇(一)
刷题顺序及部分思路来源于代码随想录,网站地址:https://programmercarl.com 部分思路来源于力扣官方题解,作者主页:https://leetcode.cn/u/leetcode-solution/ 242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个…...
WPF实战学习笔记31-登录界面全局通知
UI添加消息聚合器 <md:Snackbarx:Name"LoginSnakeBar"Grid.ColumnSpan"2"Panel.ZIndex"1"MessageQueue"{md:MessageQueue}" />注册提示消息 文件:Mytodo.Views.LoginView.cs构造函数添加内容 //注册提示消息 aggre…...
通用商城项目(中)
金山编译器出问题了。下面段落标号全出问题了,排版也出问题了。懒得改了。 使用对象存储OSS,保存品牌logo 新建Module,提供上传、显示服务 有些不明所以的,按照steinliving-commodity配置了一通pom.xml 新建application.yml&…...
谨慎使用JSON.stringify
谨慎使用JSON.stringify 为了避免因为对象是引用类型而造成的数据源污染,我们通常使用 JSON.stringify 将其转换为字符串,而后通过JSON.parse方法将字符串转化一个新对象来实现深拷贝。但是在这个过程中也会存在一些问题,本文就介绍一下使用…...
驱动开发day8
编写LED灯的驱动,使用GPIO子系统,里面添加按键的中断处理 1.应用程序发送指令控制LED亮灭 2.按键1 按下,led1电位反转 按键2按下,led2电位反转 按键3 按下,led3电位反转 驱动程序 #include <linux/init.h> #i…...
CAS 机制
问题分析与思考: CAS 是 Java 中 Unsafe 类里面的方法,它的全称是 CompareAndSwap,比较并交换 的意思。 它的主要功能是能够保证在多线程环境下,对于共享变量的修改的原子性。 举个例子,比如说有这样一个场景ÿ…...
#P1003. [NOIP2009普及组] 道路游戏
题目描述 小新正在玩一个简单的电脑游戏。 游戏中有一条环形马路,马路上有 nn 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接。小新以某个机器人工厂为起点,按顺时针顺序依次将这 nn 个机器人工厂编号为 1\sim n1∼n,因…...
python-网络爬虫.regular
regular 正则表达式 (regular expression) 正则表达式(regular expression)描述了一种字符串匹配的模式 (pattern), 可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串 中取出符合某个条件的子串等。 正则表达式是由普通…...
手动搭建gateway,项目集成gateway实现Token效果
目录 背景步骤1、首先创建springboot项目2、引入依赖3、配置文件!!!!!(超级重要!!!根据自己的需要进行配置)4、相关类我们在服务中进行的白名单中接口的操作如…...
linux下SVN服务器搭建
在本教程中,我们将介绍如何在Linux系统下搭建Subversion(SVN)服务器。Subversion是一种流行的版本控制系统,它允许多个人在同一项目上进行协作,同时避免了他们各自的更改发生冲突。 安装SVN 在大多数Linux发行版中&am…...
技术等级 TRL 定义
“不同环境、不同目标下TRL表述不一样” 技术等级 TRL 定义 TRL1 基本原理提出和发现 TRL2 技术应用研究 TRL3 完成概念验证,如叶栅试验、燃烧室头部试验等 TRL4 完成模拟部件试验.如压气机性能试验,燃烧室扇形试验 TRL5 完…...
DHorse v1.3.0 发布,基于k8s的发布平台
综述 DHorse是一个简单易用、以应用为中心的云原生DevOps系统,具有持续集成、持续部署、微服务治理等功能,无需安装依赖Docker、Maven、Node等环境即可发布Java、Vue、React应用,主要特点:部署简单、操作简洁、功能快速。 新增特…...
Redis - 缓存的双写一致性
概念: 当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致 那为什么会有不一致的情况呢? 如果不追求一致性,正常有两种做法 先修改数据库 后删除旧的缓存先删除旧的缓存 再修改数据库 我们以先删除旧的…...
opencv03-Mat矩阵API的使用
opencv03-Mat矩阵API的使用 构造方法(具体介绍看API文档) int main() {Mat m1 Mat(200, 100, CV_8UC1);imshow("o1", m1);Mat m2 Mat(Size(100, 200), CV_8UC1);imshow("o2", m2);Mat m3 Mat(200, 100, CV_8UC3, Scalar(255, 0, 0));imshow("o3&…...
2023届浙江大学MPA提面A资格经验总结分享
本人是去年报考的浙大MPA项目,并通过提面获得了A资格,新一年浙大MPA项目提前批面试已经开始了,受达立易考周老师邀请来分享下我的提面经验,希望我的经验能对还在迷茫中的小伙伴有所帮助。 点开提面通知,首先看到…...
高效构建分布式AI智能体系统:AutoGen架构深度解析与实战指南
高效构建分布式AI智能体系统:AutoGen架构深度解析与实战指南 【免费下载链接】autogen 启用下一代大型语言模型应用 项目地址: https://gitcode.com/GitHub_Trending/au/autogen AutoGen是一个革命性的多智能体对话框架,专为简化基于大型语言模型…...
STLM20DD9F温度传感器驱动库解析与STM32工程实践
1. STLM20DD9F温度传感器驱动库深度解析与工程实践1.1 器件特性与选型依据STLM20DD9F是意法半导体(STMicroelectronics)推出的高精度、低功耗模拟输出温度传感器,采用SOT-23-5封装,专为嵌入式系统中的环境与结温监测而设计。其核心…...
腾讯验证码攻防新篇:六宫格、滑块与文字识别的毫秒级破解实战
1. 腾讯验证码体系深度解析 腾讯验证码作为当前互联网安全防护的重要组成部分,已经发展出包括六宫格、图标点选、滑块验证和文字识别在内的多种形式。这些验证码在设计时充分考虑了人机交互的特点,通过视觉识别和行为分析双重机制来区分真实用户和自动化…...
如何用ADB提升调试效率?掌握这8个核心技巧
如何用ADB提升调试效率?掌握这8个核心技巧 【免费下载链接】awesome-adb ADB Usage Complete / ADB 用法大全 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-adb ADB(Android Debug Bridge)是Android调试的瑞士军刀࿰…...
Python自动化办公:3种绕过VBA宏直接操作Word目录的实战方法(附完整代码)
Python自动化办公:3种绕过VBA宏直接操作Word目录的实战方法 在数字化转型浪潮中,企业文档处理正面临前所未有的效率挑战。当我们需要批量更新数百份Word文档的目录时,传统VBA宏方案常因安全警告、格式限制和跨平台兼容性问题而举步维艰。本文…...
从零部署一个AI对话机器人:实战对比Gradio的Streaming UI与FastAPI的轻量API方案
从零部署一个AI对话机器人:实战对比Gradio的Streaming UI与FastAPI的轻量API方案 在AI应用开发领域,构建一个可交互的对话机器人已成为开发者验证想法、展示成果的标配需求。不同于传统Web开发的复杂架构,现代工具链让开发者能够用极简代码实…...
AI专著生成速达秘籍:高性价比工具剖析,助力快速创作
创新是学术专著所需的核心元素,也是写作的一道高门槛。一部合格的学术专著,不能仅仅是对已有研究成果的机械拼凑,而应当展示贯穿全书的独特见解、理论模型或研究方法。在浩如烟海的学术文献中,识别尚未探索的研究空白并不是一件容…...
告别Keil:用VS Code + EIDE打造高效C51开发环境
1. 为什么我们要放弃Keil? 如果你接触过C51单片机开发,Keil μVision这个名字一定不会陌生。作为单片机开发领域的"老前辈",Keil几乎成了教学和入门的标准工具。但说实话,每次打开那个灰蒙蒙的界面,我都感觉…...
# WebNFC:让网页也能“碰一碰”实现设备交互的新可能随着移动互联网的快速发展,**近场通信(NFC)技术**逐渐从支付场景走
3 webNFC:让网页也能“碰一碰”实现设备交互的新可能 随着移动互联网的快速发展,近场通信(NFC)技术逐渐从支付场景走向更广泛的应用领域。而在浏览器端,**WebNFC ApI*8 的出现彻底改变了我们与 NFC 设备交互的方式——…...
FreeRTOS项目瘦身技巧:如何精简文件并优化工程结构(基于Keil环境)
FreeRTOS项目瘦身实战:Keil环境下的工程精简与结构优化 在嵌入式开发中,FreeRTOS因其轻量级和开源特性成为许多项目的首选RTOS。但随着项目迭代,工程往往会积累大量冗余文件,导致编译速度下降、存储空间浪费。本文将分享一套系统化…...
