服务器之家

服务器之家 > 正文

python使用tkinter实现透明窗体

时间:2021-11-03 10:25     来源/作者:dhjabc_1

一、基础说起

(一)实现最简单的窗体

?
1
2
3
4
5
6
7
8
9
10
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()

太简单了,不详细说了,相信大家都看得懂。
效果:

python使用tkinter实现透明窗体

感觉空寥寥的,什么都没有,好无聊啊。

二、好戏开始了

也许最有趣的透明窗体就是从这么简单的代码开始。

我们可以设置一个叫做透明色的颜色,然后让窗体canvas画一个矩形框,然后将这个矩形框的内色设置成透明色,那这个窗体不就透明了吗?

呵呵,是不是太简单了。
那我们就开始设置一下。

(一)把灰色设置成透明色

?
1
2
transcolour = 'gray'
tk.wm_attributes('-transparentcolor', transcolour)

(二)放置一个矩形框在canvas上。

?
1
canvas.create_rectangle(0, 0, canvas.winfo_width(), canvas.winfo_height(), fill=transcolour, outline=transcolour)

(三)大家有发现变化吗?

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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函数

?
1
2
3
4
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函数

?
1
tk.bind('<configure>', on_resize)

(三)最终的效果

哈哈,效果出来了,真的透明了,开心、高兴。

python使用tkinter实现透明窗体

(四)录制了个动态看看

python使用tkinter实现透明窗体

好吧,写完,完整的代码就先不发了,大家有兴趣可以看上面的过程,自己整合就可以凑成完整的代码,自己动动手,也许比我直接分享最终代码的效果更好。

将一件事情做到极致,也许你会得到更大的快乐!
比心!

以上就是python使用tkinter实现透明窗体的详细内容,更多关于python tkinter实现透明窗体的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/dhjabc_1/article/details/116795808

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部