wxPython StaticText控件背景色透明

简介: wxPython StaticText控件背景色透明

版本信息:python 3.7,wxpython 4.0.4

设置背景图后StaticText控件有白色背景在上面,看起来很难受,于是百度一下搞定这个问题,虽然不是自己原创也记录一下吧,困扰很久的一个问题。直接上代码:

import wx
class TransparentStaticText(wx.StaticText):
    """
    重写StaticText控件
    """
    def __init__(self, parent, id=wx.ID_ANY, label='', pos=wx.DefaultPosition, size=wx.DefaultSize,
                 style=wx.TRANSPARENT_WINDOW, name='TransparentStaticText'):
        wx.StaticText.__init__(self, parent, id, label, pos, size, style, name)
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)
        self.Bind(wx.EVT_SIZE, self.OnSize)
    def OnPaint(self, event):
        bdc = wx.PaintDC(self)
        dc = wx.GCDC(bdc)
        font_face = self.GetFont()
        font_color = self.GetForegroundColour()
        dc.SetFont(font_face)
        dc.SetTextForeground(font_color)
        dc.DrawText(self.GetLabel(), 0, 0)
    def OnSize(self, event):
        self.Refresh()
        event.Skip()

使用透明控件的效果图:

未使用控件的效果图:

使用方法非常简单直接替换之前的wx.StaticText即可。

如:

好了完事了。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
清华大学NLP开源项目,6大神器推荐
清华大学NLP开源项目,6大神器推荐
846 0
|
Java Python
Python中线程池的使用及内存泄漏问题
Python中线程池的使用及内存泄漏问题
415 0
|
2月前
|
SQL 缓存 Java
Mybatis及MybatisPlus
MyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程及高级映射。其系统架构通过 mybatis-config.xml 配置全局信息,结合 mapper.xml 映射 SQL 语句,构建 SqlSessionFactory 并创建 SqlSession 操作数据库。MyBatis 底层通过 Executor 执行器和 Mapped Statement 对象实现 SQL 的输入输出映射与执行。支持复杂结果集映射,
|
5月前
|
开发框架 Java .NET
Python中main函数:代码结构的基石
在Python中,`main`函数是程序结构化和模块化的重要组成部分。它实现了脚本执行与模块导入的分离,避免全局作用域污染并提升代码复用性。其核心作用包括:标准化程序入口、保障模块复用及支持测试驱动开发(TDD)。根据项目复杂度,`main`函数有基础版、函数封装版、参数解析版和类封装版四种典型写法。 与其他语言相比,Python的`main`机制更灵活,支持同一文件作为脚本运行或模块导入。进阶技巧涵盖多文件项目管理、命令行参数处理、环境变量配置及日志集成等。此外,还需注意常见错误如全局变量污染和循环导入,并通过延迟加载、多进程支持和类型提示优化性能。
426 0
|
人工智能 编解码 数据可视化
moviepy,一个超酷的 Python 视频处理库!
moviepy,一个超酷的 Python 视频处理库!
1833 0
|
11月前
|
机器学习/深度学习 数据库 数据格式
深度学习之化学反应预测
基于深度学习的化学反应预测是通过深度神经网络模型来分析和预测化学反应的过程及其产物。传统的化学反应预测依赖于专家知识和实验验证,而深度学习的引入使得可以从大规模的化学数据中自动学习复杂的反应规律,提升预测的精度与效率。
368 3
|
11月前
|
Python
详解历时五年的 Cython3.0 都发生了哪些变化(一)
详解历时五年的 Cython3.0 都发生了哪些变化(一)
233 1
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
2014 1
ROS Moveit 配置全网最详细教程
|
NoSQL PHP Redis
Redis(二)PHP7.2安装redis扩展及访问
服务器安装的是php7.2,就需要使用第一个命令php72w那个,具体使用什么命令,还需要按你自己的服务器PHP版本来看。安装后可用 which phpize 和 which php-config 查看安装的路径。
597 0
Redis(二)PHP7.2安装redis扩展及访问
|
Python
深入探索Python中的os.listdir函数
探索Python `os.listdir()`函数,用于获取目录下文件和子目录列表。os模块提供操作系统接口,`listdir()`返回指定路径的文件名列表。基本用法是`os.listdir(path)`,默认为当前目录。通过递归调用可遍历目录树,结合`os.path`处理隐藏和特殊文件。注意异常处理,如`FileNotFoundError`。Python 3.5引入的`os.scandir()`更高效。了解更多详情,请参考官方文档。
656 3