python使用tkinter实现透明窗体
作者:dhjabc_1 发布时间:2022-09-10 00:58:40
标签:python,tkinter,透明窗体
目录
一、基础说起
(一)实现最简单的窗体
二、好戏开始了
(一)把灰色设置成透明色
(二)放置一个矩形框在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


猜你喜欢
- MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改 STORAGE_
- 区块链区块链是在计算机网络的节点之间共享数据的分类账(分布式数据库)。作为数据库,区块链以电子格式储存信息。区块链的创新之处在于它保证了数据
- SQL Server:Select TOP N * From TABLE Order By NewID() view
- 通过python与ffmpeg结合使用,可生成进行视频点播、直播的压力测试脚本。可支持不同类型的视频流,比如rtmp或者hls形式。 通过如
- Array.prototype._ = function(){var _p = 0;var _v = 0;(function(){ 
- 这个可能是容易被忽略的问题,首选我们要清楚:MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的限制下,总是优先执行AND
- RedHat 9.0下自带的mysql rpm包为mysql-3.23.54a-11.i386.rpm,如果在你安装操作系统时没有安装mys
- 前言:MYSQL 应该是最流行了 WEB 后端数据库。虽然 NOSQL 最近越来越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来
- 这篇文章主要介绍了Python scrapy增量爬取实例及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 前言老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-t
- 由于要学习搭建服务器和数据库,所以最近开始自学sql语言了,至于写数据库就用比较基础的Mysql数据库了,虽然Mysql已经被互联网公司所淘
- 网上考试设计思路是怎样的?为了运行这个应用程序,我们需要在global.asa文件里进行设置数据库的连接。global.asa <&n
- 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输
- 记录了CentOS7 安装python3.7.0的详细过程,供大家参考,具体内容如下1.下载及解压python3.7的安装包可从官网下载上传
- 新建label与button,并设置位置(grid)import tkinter as tkroot = tk.Tk()label = tk
- 一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录,即当前Python脚本工作的目录路
- 一、制作思路由于注册的时候常常会用到注册码来防止机器恶意注册,这里我发表一个产生png图片验证码的基本图像,简单的思路分析:1、产生一张pn
- css加载器在webpack中,所有的资源(js文件、css文件、模板文件,图片文件等等)都被看成是一个模块,因此多有的资源都是可以被加载的
- 第一:pandas.read_csv读取本地csv文件为数据框形式data=pd.read_csv('G:\data_operati
- 我们经常在处理字符串时遇到有很多空格的问题,一个一个的去手动删除不是我们程序员应该做的事情,今天这篇技巧的文章脚本之家就来给大家讲一下,如何