python使用tkinter实现透明窗体

一、基础说起

(一)实现最简单的窗体

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)

(三)最终的效果

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

(四)录制了个动态看看

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

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

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

(0)

相关推荐

  • Python 窗体(tkinter)按钮 位置实例

    如下所示: import tkinter def go(): #函数 print("go函数") win=tkinter.Tk() #构造窗体 win.title("hello zhaolin")#标题 win.geometry("800x800+300+0")#800宽度,800高度,x,y坐标,左上角 button=tkinter.Button(win,text="有种点我",command=go) #收到消息执行go函数

  • Python 窗体(tkinter)下拉列表框(Combobox)实例

    废话不多说,看代码吧! import tkinter from tkinter import ttk def go(*args): #处理事件,*args表示可变参数 print(comboxlist.get()) #打印选中的值 win=tkinter.Tk() #构造窗体 comvalue=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist=ttk.Combobox(win,textvariable=comvalue) #初始化 comboxlist["

  • 对Python 窗体(tkinter)文本编辑器(Text)详解

    如下所示: import tkinter win=tkinter.Tk() text=tkinter.Text(win) #文本编辑器(用于展示数据) text.insert(tkinter.INSERT,"因为你在我心中是那么的具体") text.insert(tkinter.INSERT,"\r\n") #换行 text.insert(tkinter.INSERT,"因为你在我心中是那么的具体") text.insert(tkinter.IN

  • 详谈Python 窗体(tkinter)表格数据(Treeview)

    如下所示: import tkinter from tkinter import ttk #导入内部包 win=tkinter.Tk() tree=ttk.Treeview(win)#表格 tree["columns"]=("姓名","年龄","身高") tree.column("姓名",width=100) #表示列,不显示 tree.column("年龄",width=100) tr

  • 对Python 窗体(tkinter)树状数据(Treeview)详解

    如下所示: import tkinter from tkinter import ttk #导入内部包 win=tkinter.Tk() tree=ttk.Treeview(win) #参数:parent, index, iid=None, **kw (父节点,插入的位置,id,显示出的文本) myid=tree.insert("",0,"中国",text="中国China",values=("1")) # "&qu

  • python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)

    在上一篇的基础上,继续在透明窗体上绘制小球, 一.画个大球看看 (一)核心代码 在on_resize函数内部增加如下画圆的代码 canvas.create_oval(100, 100, 200, 200, outline='yellow', # 边框颜色 fill='pink', # 填充颜色 width=4 # 边框宽度 ) 运行效果如下: 嘻嘻,是不是觉得有点意思. 好吧,后续我会分享这部分的完整代码给各位,希望大家不是拿来主义,能点点赞.关注一下我啊. 二.让小球随机运动起来 (一)核心函

  • python使用tkinter实现透明窗体

    一.基础说起 (一)实现最简单的窗体 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实现gif录屏功能

    一.主界面实现 (一)实现最简单的窗体 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() 太简单了,不详细说了,相信大家都看得懂. (二)把灰色设置成透明色 TRANSCOLOUR

  • 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)

    上一篇我们写了怎么将xmind转换成想要的excel格式,这篇再讲一下用Python自带的tkinter库设计一个简单的gui界面,让我们的xmind路径,用例版本执行等都通过这个gui界面来输入,生成我们需要的excel文件. Python要生成gui,库还是比较多的比如wxpython,这个我看了下,感觉比较难懂,毕竟只是设计一个比较简单的gui界面,所以就使用了tkinter库,感觉这个还是比较方便易懂的,大家可以在这里学习tkinter库http://c.biancheng.net/py

  • Python中tkinter的用户登录管理的实现

    内容 编写一个用户登录管理程序,设计窗体的布局,制定密码规则和验证码规则.要求使用 Python 标准库 tkinter 编写基于GUI 的用户登录窗体.通过该窗体,用户输入用户名.密码和验证码等信息,确认登录后需要判断用户信息是否合法,并弹出对应的反馈信息.通过判断用户是否在用户信息中,以及输入密码是否与用户信息文件中用户名所对应的密码是否相同,来判断用户是否合法.此外,新用户还可以进行注册,注册需要输入用户名.密码.手机号和身份证号等信息.注册时密码需要遵循一定规则(长度不小于8且含有数字.

  • Python通过tkinter实现百度搜索的示例代码

    本文主要介绍了Python通过tkinter实现百度搜索的示例代码,分享给大家,具体如下: """ 百度搜索可视化 """ import tkinter import win32api from selenium.webdriver import Chrome entry = None def callback(): global entry keywords = entry.get() if not keywords: win32api.Mes

  • 如何利用python的tkinter实现一个简单的计算器

    做一个计算器,这是我想要达成的效果: 在按下按钮或者按下键盘的时候,第一行输入框会显示输入的内容,第二行显示框则会预览运算结果,如果发生异常,输入内容格式错误,无法计算,则显示框显示"错误". 按"="按钮或按键回车计算结果,结果显示在第一行. 1.准备工作 导入库 tkinter import tkinter as tk 2. 开始 定义两个变量: equal_is=False #定义一些变量 textchange='' equal_is 用于判断是否已经计算出结

  • python中tkinter复选框使用操作

    代码如下所示: # tkinter复选框操作 import tkinter as tk root = tk.Tk() root.title('问卷调查') root.geometry('220x80') # 设置窗口大小 flag_1 = False flag_2 = False flag_3 = False list_content = ['你的爱好是:'] hobby_list = ['游泳', '唱歌', '旅游'] def click_1(): global flag_1 flag_1

  • python使用tkinter模块实现文件选择功能

    目录 前言 1.导入库和模块 2.编写按钮命令 3. 窗体初始化及布局 4.运行 前言 学习Python中,总想做个图形界面,找来找去,找到了tkinter. 练习内容:图形界面中,点击按钮后,利用弹出对话框选择文件(或文件夹) 1.导入库和模块 import tkinter as tk from tkinter import filedialog 此处练习过程中出现的错误:在没有第2个导入语句时,使用 tk.filedialog 后,提示错误,显示 Cannot find reference

  • Python基于Tkinter的HelloWorld入门实例

    本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld,秀一下.我用Python3.2的,Windows版本的. 源代码如下: #导入sys和tkinter模块 import sys, tkinter #创建主窗口 root = tkinter.Tk() root.title("HelloWorld") root.minsize(200, 10

随机推荐