如何在 tkinter 中创建半透明窗口?

2023-12-03

I am trying to create a translucent window in Tkinter like the one in windows 11 enter image description here

这个怎么做?如果我们不能做到这一点,我们可以捕获屏幕的一部分并使用 cv2 对其进行模糊处理,并将其用作持续更新的背景吗?


不,这不能直接通过tkinter. But:

如果你使用PIL,您可以获取窗口的位置,然后进行屏幕截图,然后对其进行模糊处理,然后将其设为您的应用程序背景。但如果用户尝试移动/调整应用程序大小,这将不起作用。但这是一个粗略的代码:

from tkinter import *
from PIL import ImageTk, ImageGrab, ImageFilter # pip install Pillow

root = Tk()
root.overrideredirect(1) # Hide the titlebar etc..

bg = Canvas(root)
bg.pack(fill='both',expand=1)
root.update()

# Get required size and then add pixels to remove title bar and window shadow
left   = root.winfo_rootx()
top    = root.winfo_rooty()
right  = left + root.winfo_width()
bottom = top  + root.winfo_height()

root.withdraw() # Hide the window
img = ImageGrab.grab((left,top,right,bottom)) # Get the bg image
root.deiconify() # Show the window

img = img.filter(ImageFilter.GaussianBlur(radius=5)) # Blur it 
img = ImageTk.PhotoImage(img)
bg.create_image(0,0, image=img, anchor='nw') # Show in canvas

label = Label(root,text='This is a translucent looking app')
bg.create_window(bg.winfo_width()/2,bg.winfo_height()/2,window=label) # Position in the center

root.mainloop()

输出与tkinter:


tkinter如果您想追求现代外观,则不是最佳选择,请使用PyQt并检查丙烯酸树脂

输出与PyQt:

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

如何在 tkinter 中创建半透明窗口? 的相关文章

随机推荐

  • 新的 Typescript“满足”运算符

    这是一个来自官方公告有关satisfies操作员 type Colors red green blue Ensure that we have exactly the keys from Colors const favoriteColor
  • ORMLite:如何在没有外键的情况下连接两个表

    我必须加入两个独立的表sqlite 他们没有任何外键关系 例子 表A有一个字段name 表B有一个字段primaryName 我想做类似的事情 select A from A inner join B on A name B primary
  • 在 VS Code 中调试在 Docker 中运行的 Node Typescript 应用程序

    我正在 Docker 中运行一个 Node 应用程序 docker compose 我使用 Traefik 作为代理 我希望能够在 VS Code 中调试它 但我无法连接到我的应用程序 connect ECONNREFUSED 127 0
  • 使用导航控制器推送后 UIScrollView 滚动不起作用

    我有一个奇怪的问题 我在视图层次结构的一部分中有一个 UIScrollView 当视图通过 UITabBarController 呈现时它工作得很好 但在使用导航控制器推送后根本不起作用 它是推送到根顶部的第三个 vc 滚动视图是在故事板中
  • 按钮在应用程序上不可见。怎么了?

    我为 我的测试应用程序 创建了一个空活动 它在预览部分中如下所示 但是当我生成一个构建 apk 并在我的手机中使用相同的结果时 结果如下 我只能查看左上角的退出按钮 但其他两个按钮应该位于其上方missing 我也尝试重新排列屏幕上的图标
  • NoSuchMethodError: org.apache.http.conn.scheme.Scheme.(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory

    我正在maven项目中运行selenium测试 这个项目是GWT Web应用程序 pom xml中有GWT依赖项 hibernate依赖项 我在测试包中创建了一个新类来运行selenium测试用例 我还包括selenium服务器 2 33
  • 允许在 IIS/Azure 中的 ASP.NET Core 的 URL 中使用冒号 (:)

    我有一个正在部署到 Azure 的 ASP NET Core 应用程序 该应用程序在 URL 中接收包含冒号 时间戳 的字符串 例如 http localhost 5000 Servers 208 100 45 135 28000 2017
  • npm 找不到模块

    我已经遍及 Google 和 StackOverflow 查看与类似问题相关的各种线程 但到目前为止没有任何效果 我的问题是 npm 似乎安装不正确 或者其他什么 我真的不知道 Node 和 npm 是我用来支持我在另一台机器上开发的 Sa
  • 如何使用 Javascript 通过单击一次向嵌套在 UL 中的多个子元素添加和删除类?

    首先我想为这么长的问题道歉 我只是希望我不会因此而变得难以理解 我在 UL 中创建了一个包含三个菜单元素的侧边栏 这些元素可展开以显示子元素 更改背景颜色并在单击时删除悬停效果 我通过定义一个函数来实现此目的 该函数在单击菜单元素时添加和删
  • selenium 并单击带有 href=javascript 的“a”

    我正在尝试单击链接 但遇到了困难 相关的HTML代码是 div style display block a href style color 000 Close window a table border 0 tbody tbody tab
  • 在 Airflow 中设置 S3 日志记录

    这让我抓狂 我正在云环境中设置气流 我有一台服务器运行调度程序和网络服务器 另一台服务器作为芹菜工作人员 我使用的是airflow 1 8 0 运行作业效果很好 什么refuses工作就是记录 我已经在两台服务器上的airflow cfg中
  • ReactJS onClick状态改变落后一步

    我正在使用 ReactJS 构建一个非常原始的测验应用程序 但在更新我的状态时遇到了问题Questions成分 它的行为是渲染正确的索引questions尽管数组到 DOMthis state questionNumber总是落后一步han
  • 检查 URL 片段中的关键字

    我使用以下内容获取 URL 例如domain com 2 然后我使用该片段将用户重定向到domain com page 2 然而 有时用户可能只看到一个哈希值而没有数字 或者我可能在单击表单时在 URL 中使用关键字 例如 反馈 问题是这会
  • Android 中如何获取联系人的所有详细信息

    给定一个联系人 ID 我可以通过对每个字段进行不同的查询来获取各种联系详细信息 如姓名 电话 电子邮件 ID 等 但是是否有一种方法可以通过进行单个查询来获取与此联系人 ID 相关的所有详细信息 必须更改一些教程内容提供商由于它引用了已弃用
  • 省略双引号在 PostgreSQL 上进行查询

    简单的问题 有没有办法在PostgreSQL中省略双引号 这是一个例子 给出select from A 我会检索ERROR relation a does not exist 我必须给select from A 得到真正的结果 有没有办法在
  • 如何将 Unity3D 5 Windows 应用程序打包到单个 exe 文件中?

    我是Unity3d开发的新手 我创建了两个版本的 3D 拼图应用程序 一个用于 Mac 另一个用于 Windows Mac 应用程序是使用其中包含的包内容创建的 Windows应用程序是使用exe文件和一个单独的数据文件夹创建的 该数据文件
  • 在 Java 中切换布尔变量的最简洁方法?

    在 Java 中是否有比简单的 if else 更好的方法来否定布尔值 if theBoolean theBoolean false else theBoolean true theBoolean theBoolean
  • 如何使用LiveData实现zip功能

    我正在使用两个 LiveData 从我的服务器获取数据 并希望在两个 LiveData 完成后得到结果 LiveData live1 LiveData live2 MutableLiveData live3 live1 observe th
  • R dplyr 根据多个选定列的条件过滤行

    我有一个数据框DF 我想根据几个选定列的条件对其进行过滤 例如 我想过滤 DF 中满足该行包含任何值的条件的行小于0 03在列中PCS AB PCS AD PCS BD DF lt cbind data frame A c 100 10 1
  • 如何在 tkinter 中创建半透明窗口?

    I am trying to create a translucent window in Tkinter like the one in windows 11 这个怎么做 如果我们不能做到这一点 我们可以捕获屏幕的一部分并使用 cv2 对