python使用tkinter实现透明窗体
作者:dhjabc_1 时间:2022-09-10 00:58:40
目录
一、基础说起
(一)实现最简单的窗体
二、好戏开始了
(一)把灰色设置成透明色
(二)放置一个矩形框在canvas上。
(三)大家有发现变化吗?
三、成功的背后总有残缺
(一)让透明窗体不断重画的onsize函数
(二)绑定onsize函数
(三)最终的效果
(四)录制了个动态看看
一、基础说起
(一)实现最简单的窗体
from tkinter import *
if __name__ == '__main__':
tk = Tk()
tk.geometry('500x400+500+150')
tk.title('有趣的透明窗体-开篇了!!!')
canvas = Canvas(tk)
canvas.pack(fill=BOTH, expand=Y)
tk.mainloop()
太简单了,不详细说了,相信大家都看得懂。
效果:
感觉空寥寥的,什么都没有,好无聊啊。
二、好戏开始了
也许最有趣的透明窗体就是从这么简单的代码开始。
我们可以设置一个叫做透明色的颜色,然后让窗体canvas画一个矩形框,然后将这个矩形框的内色设置成透明色,那这个窗体不就透明了吗?
呵呵,是不是太简单了。
那我们就开始设置一下。
(一)把灰色设置成透明色
TRANSCOLOUR = 'gray'
tk.wm_attributes('-transparentcolor', TRANSCOLOUR)
(二)放置一个矩形框在canvas上。
canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=TRANSCOLOUR, outline=TRANSCOLOUR)
(三)大家有发现变化吗?
from tkinter import *
if __name__ == '__main__':
TRANSCOLOUR = 'gray'
tk = Tk()
tk.geometry('500x400+500+150')
tk.title('有趣的透明窗体-开篇了!!!')
canvas = Canvas(tk)
canvas.pack(fill=BOTH, expand=Y)
canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=TRANSCOLOUR, outline=TRANSCOLOUR)
tk.mainloop()
发现,程序完全不鸟我的代码,还是原来的老样子。
但是逻辑没有错误啊,代码也没有报错啊,那到底哪里错了呢?
三、成功的背后总有残缺
不断摸索后,原来思路是对的,但是窗体很努力,它会不断的重复调用重画窗体的操作,也就是说在后面自动重画的过程中,程序调用默认的代码,把我设置的透明窗体覆盖了,所以,透明窗体不见了。
(一)让透明窗体不断重画的onsize函数
def on_resize(evt):
tk.configure(width=evt.width,height=evt.height)
canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=TRANSCOLOUR, outline=TRANSCOLOUR)
print(canvas.winfo_width())
(二)绑定onsize函数
tk.bind('<Configure>', on_resize)
(三)最终的效果
哈哈,效果出来了,真的透明了,开心、高兴。
(四)录制了个动态看看
好吧,写完,完整的代码就先不发了,大家有兴趣可以看上面的过程,自己整合就可以凑成完整的代码,自己动动手,也许比我直接分享最终代码的效果更好。
将一件事情做到极致,也许你会得到更大的快乐!
比心!
来源:https://blog.csdn.net/dhjabc_1/article/details/116795808
标签:python,tkinter,透明窗体
0
投稿
猜你喜欢
Python import与from import使用和区别解读
2021-06-22 08:51:02
使用python 将图片复制到系统剪贴中
2021-12-03 22:34:11
Python中eval()函数的详细使用教程
2023-11-22 15:51:39
Django REST framework内置路由用法
2022-04-06 14:22:35
Python之Scrapy爬虫框架安装及使用详解
2022-10-02 18:28:20
确定能够释放空间的SQL Server数据库文件的脚本
2010-07-31 12:36:00
SQLserver 2000中出现“指定的服务并未以已安装的服务存在 解决方案
2011-04-27 14:33:00
浅谈微信小程序之官方UI框架we-ui使用教程
2024-04-16 09:52:43
解决pycharm 格式报错tabs和space不一致问题
2022-10-12 11:36:12
SQL Server 2008 正式版安装指南 包含序列号
2024-01-14 19:12:47
go语言实现聊天服务器的示例代码
2024-04-26 17:17:39
如何修改WAMP中mysql默认空密码的方法
2024-01-25 01:49:51
一些关于python 装饰器的个人理解
2021-11-27 21:41:33
php中运用http调用的GET和POST方法示例
2023-11-23 02:39:35
Script块放在另一个Script 块内方法
2009-02-04 15:43:00
Python面向对象之类的内置attr属性示例
2022-03-22 18:02:12
Python中的集合一起来学习一下
2022-05-01 05:06:59
python开发之基于thread线程搜索本地文件的方法
2023-05-11 18:49:12
Python采集大学教务系统成绩单实战示例
2021-05-13 23:14:43
解析如何在sqlserver代理中配置邮件会话
2024-01-21 20:55:24