这篇文章主要介绍“python如何实现透明窗体”,在日常操作中,相信很多人在python如何实现透明窗体问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python如何实现透明窗体”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、基础说起
(一)实现最简单的窗体

fromtkinterimport*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)(三)大家有发现变化吗?

fromtkinterimport*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函数

defon_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)

到此,关于“python如何实现透明窗体”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!