QGraphicsDropShadowEffect 的效果不能同时被多个控件使用

news2025/3/15 11:56:26

问题的原因是 QGraphicsDropShadowEffect 不能同时被多个控件共享。每个 QGraphicsDropShadowEffect 实例只能绑定到一个控件上。如果你将同一个 taskbarShadow 同时设置给 ui->filemanager_memeryAreaui->workspaceWidget,只有最后一个设置会生效。


解决方法

为每个控件创建独立的 QGraphicsDropShadowEffect 实例。以下是修改后的代码:

// 设置 filemanager_memeryArea 的阴影效果
QGraphicsDropShadowEffect *memoryAreaShadow = new QGraphicsDropShadowEffect(this);
memoryAreaShadow->setOffset(5, 5); // 阴影的偏移量
memoryAreaShadow->setColor(QColor(43, 43, 43)); // 阴影的颜色
memoryAreaShadow->setBlurRadius(8); // 阴影模糊半径
ui->filemanager_memeryArea->setGraphicsEffect(memoryAreaShadow);

// 设置 workspaceWidget 的阴影效果
QGraphicsDropShadowEffect *workspaceShadow = new QGraphicsDropShadowEffect(this);
workspaceShadow->setOffset(5, 5); // 阴影的偏移量
workspaceShadow->setColor(QColor(43, 43, 43)); // 阴影的颜色
workspaceShadow->setBlurRadius(8); // 阴影模糊半径
ui->workspaceWidget->setGraphicsEffect(workspaceShadow);

关键点

  1. QGraphicsDropShadowEffect 是独占的

    • 每个 QGraphicsDropShadowEffect 实例只能绑定到一个控件上。
    • 如果你尝试将同一个实例绑定到多个控件,只有最后一个绑定会生效。
  2. 为每个控件创建独立的实例

    • ui->filemanager_memeryAreaui->workspaceWidget 分别创建独立的 QGraphicsDropShadowEffect 实例。
  3. 性能考虑

    • 如果需要对多个控件设置相同的阴影效果,可以封装一个函数来创建阴影效果,避免重复代码。

封装阴影效果函数

如果你需要对多个控件设置相同的阴影效果,可以封装一个函数来简化代码:

QGraphicsDropShadowEffect* createShadowEffect(QWidget *parent)
{
    QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(parent);
    shadow->setOffset(5, 5); // 阴影的偏移量
    shadow->setColor(QColor(43, 43, 43)); // 阴影的颜色
    shadow->setBlurRadius(8); // 阴影模糊半径
    return shadow;
}

// 使用函数设置阴影效果
ui->filemanager_memeryArea->setGraphicsEffect(createShadowEffect(this));
ui->workspaceWidget->setGraphicsEffect(createShadowEffect(this));

总结

  • 问题原因QGraphicsDropShadowEffect 是独占的,不能同时绑定到多个控件。
  • 解决方法:为每个控件创建独立的 QGraphicsDropShadowEffect 实例。
  • 优化建议:封装阴影效果创建函数,减少重复代码。

通过以上方法,你可以为 ui->filemanager_memeryAreaui->workspaceWidget 分别设置阴影效果,且两者都会生效。

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

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

相关文章

实用小工具——快速获取数据库时间写法

最近我遇到了一个比较棘手的问题:在工作中,各个项目所使用的数据库类型各不相同。这导致我习惯性地使用Oracle的SQL语句进行编写,但每次完成后都会遇到报错,最终才意识到项目的数据库并非Oracle。为了避免这种情况,我需…

基于ssm的宠物医院信息管理系统(全套)

一、系统架构 前端:html | layui | vue | element-ui 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…

从 YOLOv1 到 YOLOv2:目标检测的进化之路

引言 你有没有想过,当你用手机拍一张照片,里面的人、车、狗是怎么被自动识别出来的?这背后靠的就是目标检测技术。目标检测是计算机视觉中的一个重要领域,它不仅要回答“图片里有什么”,还要告诉你“这些东西在哪里”…

RTDETR融合[CVPR205]ARConv中的自适应矩阵卷积

RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Adaptive Rectangular Convolution for Remote Sensing Pansharpening》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.00467 代码链接:https:/…

项目-个人博客测试报告

目录 一、项目背景 二、项目功能 三、测试计划 (1)功能测试 (2)自动化测试 (3)性能测试 一、项目背景 1、个人博客系统是一个操作简单的基于Spring前后端分离的项目,同时使用MySQL数据库来进…

软考计算机知识-流水线

计算机流水线类似工业生产过程的流水线,在同一时间,m个部件进行不同的操作,完成对不同对象的处理。 理解重叠:让不同的指令在时间上重叠地解释。在解释第k条指令的操作完成之前,就可以开始解释第k1条指令。 题1&#…

Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)

Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!) 文章目录 Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)前…

前端登录鉴权全解析:主流方案对比与实现指南

文章目录 一、常见登录鉴权方式概览1.1 主流方案对比1.2 技术特性对比 二、Session/Cookie方案2.1 实现原理2.2 代码实现2.3 优缺点分析 三、JWT方案3.1 实现原理3.2 代码实现3.3 优缺点分析 四、OAuth方案4.1 实现原理4.2 代码实现4.3 优缺点分析 五、SSO方案5.1 实现原理5.2 …

【C++】每日一练(链表的中间结点)

本篇博客给大家带来的是用C语言来解答找中间结点! 🐟🐟文章专栏:每日一练 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想:不服输的…

使用Python在Word中生成多种不同类型的图表

目录 工具与环境配置 在 Word 中创建图表的步骤 在Word中创建柱形图 在Word中创建条形图 在Word中创建折线图 在Word中创建饼图 在Word中创建散点图 在Word中创建气泡图 在 Word 文档中插入图表不仅能更直观地呈现数据,还能提升文档的可读性和专业性。常见的…

pycharm + anaconda + yolo11(ultralytics) 的视频流实时检测,保存推流简单实现

目录 背景pycharm安装配置代码实现创建本地视频配置 和 推流配置视频帧的处理和检测框绘制主要流程遇到的一些问题 背景 首先这个基于完整安装配置了anaconda和yolo11的环境,如果需要配置开始的话,先看下专栏里另一个文章。 这次的目的是实现拉取视频流…

Netty基础—5.Netty的使用简介

大纲 1.Netty服务端的启动流程 2.服务端IO事件的处理类 3.Netty客户端的启动流程 4.客户端IO事件的处理类 5.启动Netty服务端和客户端的方法说明 6.Netty服务端和客户端使用总结 7.什么是TCP粘包拆包 8.TCP粘包拆包的几种情况 9.TCP粘包拆包的原因 10.粘包问题的解决…

C++初阶——类和对象(一)

C初阶——类和对象(一) 一、面向过程和面向对象 1.面向过程 面向过程的程序设计(Procedure-Oriented Programming),简称POP,是一种是以程序执行流程为核心的编程范式。它是先分析出解决问题所需要的的步…

RabbitMQ入门:从安装到高级消息模式

文章目录 一. RabbitMQ概述1.1 同步/异步1.1.1 同步调用1.1.2 异步调用 1.2 消息中间件1.2.1 概念1.2.2 作用1.2.3 常见的消息中间件1.2.4 其他中间件 1.3 RabbitMQ1.3.1 简介1.3.2 特点1.3.3 方式1.3.4 架构1.3.5 运行流程 二. 安装2.1 Docker 安装 RabbitMQ 三. 简单队列&…

Linux应用:进程的回收

进程的诞生和消亡 程的诞生通常是通过系统调用(如fork、exec等)来创建新进程。当一个进程完成其任务或者出现错误时,它会进入消亡阶段。进程可以通过exit函数主动结束自身,也可能由于操作系统的调度策略(如资源耗尽、…

如何利用 AI 技术快速定位和修复生产环境问题

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

(链表)206. 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输入&am…

农业建设项目管理系统评测:8款推荐工具优缺点分析

本文主要介绍了以下8款农业建设项目管理系统:1.PingCode; 2. Worktile ;3. 建米农业工程项目管理系统;4. 开创云数字农业管理平台; 5. Trimble Ag Software;6.Conservis; 7. Agworld &#xff1…

linux 命令 tail

tail 是 Linux 中用于查看文件末尾内容的命令&#xff0c;常用于日志监控和大文件快速浏览。以下是其核心用法及常见选项&#xff1a; 基本语法 tail [选项] 文件名 常用选项 显示末尾行数 -n <行数> 或 --lines<行数> 指定显示文件的最后若干行&#xff08;…

实验8 搜索技术

实验8 搜索技术 一、实验目的 &#xff08;1&#xff09;掌握搜索技术的相关理论&#xff0c;能根据实际情况选取合适的搜索方法&#xff1b; &#xff08;2&#xff09;进一步熟悉盲目搜索技术&#xff0c;掌握其在搜索过程中的优缺点&#xff1b; &#xff08;3&#xff09;…