透明颜色 Tkinter

2024-04-22

是否可以将框架背景或任何其他小部件的颜色更改为透明浅蓝色或任何其他透明颜色?


是的,有办法。不幸的是,它仅适用于整个窗口(窗口和所有子窗口小部件)。

这是我不久前写的一个小演示,除其他外,它可以满足您的需求。

透明窗口演示:

import Tkinter as Tk, re




class TransparentWin (Tk.Tk) :
    ''' Transparent Tk Window Class '''

    def __init__ (self) :

        Tk.Tk.__init__(self)

        self.Drag = Drag(self)

        ''' Sets focus to the window. '''
        self.focus_force()

        ''' Removes the native window boarder. '''
        self.overrideredirect(True)

        ''' Disables resizing of the widget.  '''
        self.resizable(False, False)

        ''' Places window above all other windows in the window stack. '''
        self.wm_attributes("-topmost", True)

        ''' This changes the alpha value (How transparent the window should
            be). It ranges from 0.0 (completely transparent) to 1.0
            (completely opaque).  '''
        self.attributes("-alpha", 0.7)

        ''' The windows overall position on the screen  '''
        self.wm_geometry('+' + str(439) + '+' + str(172))

        ''' Changes the window's color. '''
        bg = '#3e4134'

        self.config(bg=bg)

        self.Frame = Tk.Frame(self, bg=bg)
        self.Frame.pack()

        ''' Exits the application when the window is right clicked. '''
        self.Frame.bind('<Button-3>', self.exit)

        ''' Changes the window's size indirectly. '''
        self.Frame.configure(width=162, height=100)

    def exit (self, event) :
        self.destroy()

    def position (self) :

        _filter = re.compile(r"(\d+)?x?(\d+)?([+-])(\d+)([+-])(\d+)")

        pos = self.winfo_geometry()

        filtered = _filter.search(pos)
        self.X = int(filtered.group(4))
        self.Y = int(filtered.group(6))

        return self.X, self.Y

class Drag:
    ''' Makes a window dragable. '''

    def __init__ (self, par, dissable=None, releasecmd=None) :

        self.Par        = par
        self.Dissable   = dissable

        self.ReleaseCMD = releasecmd

        self.Par.bind('<Button-1>', self.relative_position)
        self.Par.bind('<ButtonRelease-1>', self.drag_unbind)


    def relative_position (self, event) :

        cx, cy = self.Par.winfo_pointerxy()
        x, y = self.Par.position()

        self.OriX = x
        self.OriY = y

        self.RelX = cx - x
        self.RelY = cy - y

        self.Par.bind('<Motion>', self.drag_wid)

    def drag_wid (self, event) :

        cx, cy = self.Par.winfo_pointerxy()

        d = self.Dissable

        if d == 'x' :
            x = self.OriX
            y = cy - self.RelY
        elif d == 'y' :
            x = cx - self.RelX
            y = self.OriY
        else:
            x = cx - self.RelX
            y = cy - self.RelY

        if x < 0 :
            x = 0

        if y < 0 :
            y = 0

        self.Par.wm_geometry('+' + str(x) + '+' + str(y))

    def drag_unbind (self, event) :

        self.Par.unbind('<Motion>')

        if self.ReleaseCMD != None :
            self.ReleaseCMD()


    def dissable (self) :

        self.Par.unbind('<Button-1>')
        self.Par.unbind('<ButtonRelease-1>')
        self.Par.unbind('<Motion>')


def __run__ () :

    TransparentWin().mainloop()


if __name__ == '__main__' :

    __run__()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

透明颜色 Tkinter 的相关文章

随机推荐

  • 启动时出现速度错误“VM全局库.vm”

    我正在将 Velocity 与 Spring 一起使用 但在 Eclipse 控制台中我收到此错误 我的代码工作正常 但我想知道如何修复它 ResourceManager 无法在任何资源加载器中找到资源 VM global library
  • Android:连接和彩色阿拉伯字母

    我想显示已连接ANDandroid 视图 webview 或 textview 上的彩色阿拉伯字母 首先 我使用了没有颜色的 TextView 并且阿拉伯语显示正确 当我使用 spannableString 时 彩色字母与单词断开 其次 我
  • 如何从套接字读取接收自定义数据类型?

    我想接收数据 自定义类型 例如 CMYType 我有以下代码 using namespace boost asio streambuf receivedStreamBuffer streambuf mutable buffers type
  • Conda 将一个环境.yml 导入另一个环境

    考虑将具有依赖项的 Python 子模块导入到具有其自己的依赖项的项目中的情况 假设子模块有它的environment yml文件和项目本身有一个environment yml file 有没有办法创建一个包含这两种环境规范的环境 如果是的
  • 为什么 std::sort 将元素与其自身进行比较

    正如题主所说 为什么下面的代码将某些元素与它们自身进行比较 include
  • Django - 在同一网址中有两个视图

    我正在 django 中制作一个网站 在我的主页中我想显示我最近的博客文章列表 下面的几个块我想制作一个简单的联系表单 博客和联系表格分别运行良好 但我想将它们包含在同一页面中 显然在同一网址中 views py 是 from forms
  • AnkhSVN 和 VisualSVN 可以同时使用吗?

    我想尝试 AnkhSVN 的一项功能 即与 Red Gate SQL Changeset 工具集成 而无需完全卸载 VisualSVN 这感觉很危险 所以我想看看其他人是否有经验可以减轻或证实我的恐惧 Update所以我尝试卸载 Visua
  • Visual Studio 2012 - 条件编译符号设置的位置

    我一生都找不到要在 Visual Studio 2012 中输入项目的条件编译符号的字段 我是这个功能的新手 所以我不知道它是否已被重命名为其他名称 但是我正在努力追随本指南 http www codeproject com Article
  • AWS Step Functions 等待 CodeBuild 完成

    如何等待 CodeBuild 在 Step Functions 状态机内完成 我现在能想到的唯一等待是使用循环和计时器 就像下面的流程一样 但这是唯一的方法吗 没有 WaitForBuild 操作或类似的操作吗 拼写错误 BatchGetB
  • ASP.NET MVC 是否为区域创建默认路由

    我的 MVC 3 应用程序 身份验证 和 用户 中有几个区域 我在用Phil Haacks 路由调试工具 http haacked com archive 2008 03 13 url routing debugger aspx查看我的路线
  • 如果构建是源代码外的,CMake 无法找出标头依赖项?

    我一直在使用 CMake 来管理一个单独的小型 c 项目 基于 Unix Makefile 并决定将其转换为更有组织的源代码外构建 但是 当它超出源时 通过执行cmake 在 build 中 我的标头不再是其源文件的依赖项 如果我只是从顶层
  • 分割车牌字符

    我在从车牌图像中分割字符时遇到问题 我应用了以下方法来提取车牌字符 车牌图像的自适应阈值 选择具有特定纵横比的轮廓 如果车牌图像中有任何阴影 如附件中所示 由于二值化不正确 我无法正确分割字符 图像中的阴影合并图像中的相邻字符 我已经对具有
  • 如何使用release编译一些依赖项

    我想使用 dev 配置文件构建我的 Rust 应用程序 但使用 release 配置文件构建一些依赖项 因为否则它们真的很慢 如何有选择地为我的板条箱依赖项指定配置文件 Cargo 能够覆盖特定包裹的配置文件 来自参考 https doc
  • 仅过滤有错误的请求 - Google Chrome 网络

    如何在 google chrome 网络开发工具中仅过滤有错误的请求 我找到了自己的方法 所以它不是官方的 可能存在其他方法 选项 1 过滤 HTTP 状态代码 您可以按状态代码过滤响应 这是一个有用的列表 https httpstatus
  • 使用 java swing 显示两个重叠的对话框

    我遇到一种情况 我显示一个对话框 用户必须填写一些菜单 然后按 确定 它工作正常 但现在我在这个对话框上有另一个按钮 如果用户想要添加一些特定的值 我希望弹出另一个对话框 用户在其中填写附加值 然后按 确定 该对话框消失 用户返回主窗口对话
  • 用 ruby​​ 制作闪烁的控制台消息

    0 upto 9 do STDOUT print Flash sleep 0 5 STDOUT print b b b b b b 6 backspaces the length of Flash sleep 0 5 end 这段代码不起作
  • 错误:[电子邮件受保护]:未知版本:mountain_lion

    关注了这个tutorial https github com thoughtbot capybara webkit wiki Installing Qt and compiling capybara webkit macos high si
  • 通过 URL HeadlessChrome 进行 Selenium 基本身份验证(在 Linux 服务器上)

    在我的 Selenium 测试中 我需要测试一个使用基本 Authen 的网页 知道我正在使用 Chrome Headless Java 和 Selenium WebDriver 在我的 本地 机器上它可以完美地使用driver get h
  • 如何在 mac os x 上安装 Image::Magick?

    我尝试用brew安装 brew install imagemagick 安装似乎已成功完成 然而 当尝试 use Image Magick 我收到以下错误消息 Can t locate Image Magick pm in INC 我不太了
  • 透明颜色 Tkinter

    是否可以将框架背景或任何其他小部件的颜色更改为透明浅蓝色或任何其他透明颜色 是的 有办法 不幸的是 它仅适用于整个窗口 窗口和所有子窗口小部件 这是我不久前写的一个小演示 除其他外 它可以满足您的需求 透明窗口演示 import Tkint