当前位置: 首页 > news >正文

调整应用窗口透明度

朋友问我有没有软件透明得,一开始没理解,他给我发一个,我一看原来时调整窗口透明度得,想着python应该也可以实现,就写了一个。

效果图如下:

源码如下:
 

import sys
import ctypes
from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QSlider, QHBoxLayout, QFrame
from PySide2.QtCore import Qt, QTimer
import win32gui
import win32condef is_valid_window(hwnd, title):"""判断窗口是否为有效的主窗口,只显示在任务栏的窗口"""if not title:return False# 获取窗口类名class_name = win32gui.GetClassName(hwnd)if "Cortana" in title or "SearchUI" in class_name:return False# 检查窗口是否可见,并且不处于最小化状态if not win32gui.IsWindowVisible(hwnd) or win32gui.IsIconic(hwnd):return False# 检查窗口的样式,确保它是应用程序窗口而非工具窗口等style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)if not (style & win32con.WS_EX_APPWINDOW):return Falsereturn Trueclass WindowBlock(QFrame):"""表示单个窗口信息的块"""def __init__(self, hwnd, title, parent=None):super().__init__(parent)self.hwnd = hwndself.title = title[:8]  # 最多显示8个字符self.init_ui()def init_ui(self):# 设置边框self.setFrameStyle(QFrame.Box | QFrame.Raised)self.setLineWidth(1)  # 边框线宽# 布局:横向布局,标题在左,滑块在右layout = QHBoxLayout()# 设置统一的固定大小self.setFixedSize(50, 150)  # 宽度100,高度150,根据你的需求调整# 调整内部布局的间距和边距,让整体更紧凑layout.setContentsMargins(5, 5, 5, 5)  # 控制窗口边距,越小越紧凑layout.setSpacing(3)  # 控制内部元素之间的间距# 竖直显示窗口标题self.title_label = QLabel(self.format_vertical_text(self.title))self.title_label.setAlignment(Qt.AlignCenter)layout.addWidget(self.title_label)# 透明度滑块,竖向布局self.slider = QSlider(Qt.Vertical)  # 改为竖向拖动self.slider.setMinimum(0)self.slider.setMaximum(255)self.slider.setValue(255)self.slider.valueChanged.connect(self.change_transparency)layout.addWidget(self.slider)self.setLayout(layout)def format_vertical_text(self, text):"""将文本格式化为竖直排列"""return '\n'.join(list(text))def change_transparency(self, value):"""根据滑块值调整窗口透明度"""style = win32gui.GetWindowLong(self.hwnd, win32con.GWL_EXSTYLE)win32gui.SetWindowLong(self.hwnd, win32con.GWL_EXSTYLE, style | win32con.WS_EX_LAYERED)win32gui.SetLayeredWindowAttributes(self.hwnd, 0, value, win32con.LWA_ALPHA)class WindowTransparencyApp(QWidget):"""主窗口类,展示所有可调整透明度的窗口"""def __init__(self):super().__init__()self.setWindowTitle("窗口透明度调整器")self.setGeometry(300, 300, 800, 200)  # 横向布局,调宽度# 总体布局self.layout = QHBoxLayout()  # 改为横向布局self.layout.setContentsMargins(5, 5, 5, 5)  # 控制主窗口的边距self.layout.setSpacing(5)  # 控制每个窗口块之间的间距self.setLayout(self.layout)# 设置定时器每秒更新窗口列表self.timer = QTimer(self)  # 使用 QTimerself.timer.timeout.connect(self.update_window_list)self.timer.start(1000)  # 每秒刷新一次窗口列表# 初始化窗口列表self.windows = []def update_window_list(self):"""每秒更新当前打开的窗口列表,保持最新状态。"""current_hwnds = [hwnd for hwnd, _ in self.windows]new_windows = []def enum_window_callback(hwnd, _):title = win32gui.GetWindowText(hwnd)if is_valid_window(hwnd, title):if hwnd not in current_hwnds:  # 仅添加新窗口new_windows.append((hwnd, title))# 枚举所有窗口win32gui.EnumWindows(enum_window_callback, None)# 如果有新窗口,更新显示if new_windows:for hwnd, title in new_windows:self.windows.append((hwnd, title))window_block = WindowBlock(hwnd, title)self.layout.addWidget(window_block)# 检查是否有窗口关闭for hwnd, title in self.windows[:]:if not win32gui.IsWindow(hwnd):self.windows.remove((hwnd, title))# 删除对应的窗口块for i in range(self.layout.count()):widget = self.layout.itemAt(i).widget()if isinstance(widget, WindowBlock) and widget.hwnd == hwnd:widget.deleteLater()if __name__ == "__main__":app = QApplication(sys.argv)window = WindowTransparencyApp()window.show()window.adjustSize()sys.exit(app.exec_())

成品下载:Release 1.0 · duanxcseven/hide (github.com)

相关文章:

调整应用窗口透明度

朋友问我有没有软件透明得,一开始没理解,他给我发一个,我一看原来时调整窗口透明度得,想着python应该也可以实现,就写了一个。 效果图如下: 源码如下: import sys import ctypes from PySid…...

启智畅想集装箱号码智能识别原理,OCR识别应用

集装箱号码用途: 集装箱号码在填写托运单时是必填项,用于标识和跟踪货物运输过程中的集装箱。它有助于海关管理和物流跟踪,确保货物能够顺利通过海关检查并按时送达目的地。 集装箱号码智能识别原理: 在深入探讨集装箱号码OCR&…...

React基础知识

说明:react版本为 18.3.1 React是什么 React由Meta公司研发,是一个用于构建Web和原生交互界面的库。(开发基于浏览器的web应用和基于mac和android的移动应用)React的优势 1.相较于传统基于DOM开发的优势:组件化的开…...

Java基础:面向对象编程3

1 Java可变长参数 1.1 概述 Java 的可变长参数(Varargs)是在 Java 1.5 中引入的功能,允许方法接受任意数量的相同类型的参数。可变参数的语法是在参数类型后面加上三个点(...),例如 int... numbers。 1.…...

实验kubernetes的CPU绑定策略

CPU 管理配置 CPU 管理策略通过 kubelet 参数 --cpu-manager-policy 或 KubeletConfiguration 中的 cpuManagerPolicy 字段来指定。 支持两种策略: none:默认策略。static:允许为节点上具有某些资源特征的 Pod 赋予增强的 CPU 亲和性和独占…...

Zsh 安装与配置

目录 1 环境配置 1.1 基本工具安装 1.2 安装 oh-my-zsh 1.3 从.bashrc中迁移配置(可选) 2 主题配置 2.1 内置主题 2.2 自定义主题 2.2.1 推荐主题 3 插件安装 3.1 推荐插件 3.1.1 zsh -autosuggestions 3.1.2 zsh-syntax-highlighting 3.2 启…...

Redis可视化工具Redis Desktop Manager(附安装包)

前言 redis工具,我相信每个开发都需要,如果每次查都去client执行指令,我怕查完之后,老大就要发版咯。我之前一直用的Redis可视化工具RedisDesktopManager,总觉得差点意思,直到同事推荐了个新的&#xff0c…...

sql server删除过期备份文件脚本

一、通过脚本查看过期文件,时间可以自己设定 for /f "delims" %i in (dir /b /a-d "E:\mybak_file\*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup") do if "%~ti" LSS "2024/09/29 16:50&qu…...

【Docker系列】Docker查看镜像架构

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Python案例 | 测试网络的下载速度上传速度和 ping 延迟

使用了 speedtest 库来测试网络的下载速度上传速度和 ping 延迟 注意,这里需要先卸载speedtest,再安装speedtest-cli pip uninstall speedtest pip install speedtest-cli其次运行代码: # 使用了 speedtest 库来测试网络的下载速度上传速度…...

一键找回,2024四大固态硬盘数据恢复工具推荐!

虽然固态硬盘(SSD)因其读写速度快、功耗低等特点受到广泛欢迎,但它并非无懈可击,数据丢失的问题依然存在。如果你也遇到了固态硬盘数据丢失的问题,那么一下的这几款软件可以一试! 福昕数据恢复 直达链接&…...

数据结构~AVL树

文章目录 一、AVL树的概念二、AVL树的定义三、AVL树的插入四、AVL树的平衡五、AVL树的验证六、AVL树的删除七、完整代码八、总结 一、AVL树的概念 AVL树是最先发明的自平衡二叉查找树,AVL是⼀颗空树,或者具备下列性质的二叉搜索树:它的左右子…...

ffmpeg面向对象——rtsp拉流探索(1)

目录 0.avformat_open_input的rtsp流程程纯净版1.rtsp拉流流程图2.rtsp拉流对象图 标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。 0.avformat_open_input的rtsp流程程纯净版 ffmpeg拉流,从avformat_open_input接口…...

【启明智显分享】ZX7981PM WIFI6 5G-CPE:2.5G WAN口,2.4G/5G双频段自动调速

昨天,我们向大家展现了ZX7981PG WIFI6 5G-CPE,它强大的性能也引起了一波关注,与此同时,我们了解到部分用户对更高容量与更高速网口的需求。没关系!启明智显早就预料到了!ZX7981PM满足你的需求! …...

openresty“热部署“lua

一、前言 频繁reload 或者restart影响测试使用nginx,修改lua脚本后要实际查看效果值,使用关闭lua代码缓存,可以实现实时查看代码效果。 每次请求都会从磁盘中加载lua脚本,生产上面不要开启,影响响应速度 二、修改ngin…...

基于SpringBoot+Vue+MySQL的企业招聘管理系统

系统展示 用户前台界面 管理员后台界面 企业后台界面 系统背景 在当今数字化转型的大潮中,企业对于高效、智能化的人力资源管理系统的需求日益增长。招聘作为人力资源管理的首要环节,其效率与效果直接影响到企业的人才储备与竞争力。传统的招聘方式不仅耗…...

vue3之defineComponent

defineComponent 是 Vue 3 中提供的一个辅助函数,用于定义组件。它可以帮助你更好地利用 TypeScript 的类型推断和 IDE 的自动补全功能。defineComponent 主要用于组合式 API(Composition API)和单文件组件(SFC)。 使…...

springboot+vue家政服务管理平台

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的,前后端分离。 开发语言:Java数据库:MySQL技术:…...

python pip安装requirements.txt依赖与国内镜像

python pip安装requirements.txt依赖与国内镜像 如果网络通畅,直接pip安装依赖: pip install -r requirements.txt 如果需要国内的镜像,可以考虑使用阿里的,在后面加上: -i http://mirrors.aliyun.com/pypi/simple --…...

解决Qt的QWidget设计师编辑UI后和软件运行显示不一致

解决方法,只需要在main.cpp中加入下面一段代码 if (QT_VERSION > QT_VERSION_CHECK(5, 6, 0))QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling,true); 完整的代码如下 int main(int argc, char *argv[]) { if (QT_VERSION > QT_VERSION_C…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

python打卡day49

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...