大家好,又见面了,我是全栈君。
前言
在前面已经学习了很多,制作弹窗的方式,但是没有一个透明的弹窗。这次我们来做一个透明的弹窗好了。如图,先来感受一下。
还记得以前电脑上莫名其妙安装的游戏吗?窗口并不是方形的。以及在双十一左右时,你的电脑会莫名其妙的多一个红包窗口显示在桌面上,那这些是如何实现的呢,我们一起来看一下吧。
目录
隐形弹框
我们需要先来制作一个隐形弹框,一起来参考一下吧。
1、创建一个窗口
tk = tkinter.Tk()
tk.title("窗口") # 设置窗口名称
tk.geometry("400x420+400+420")
tk.mainloop()
2、去除标题栏
tk.overrideredirect(True)
3、设置窗口透明
tk.wm_attributes('-transparentcolor', 'white')#将白色变为无色
4、设置透明度
tk.attributes("-alpha", 0.3)#设置透明度
最终效果:千万不要说啥都没有,真的有一个弹框。
不规则弹框
在上面估计有人觉得我在忽悠人,那我们在弹框里面加点东西好了。
import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
tk = tkinter.Tk()
tk.title("窗口") # 设置窗口名称
tk.geometry("400x420+400+420")
tk.overrideredirect(True)
tk.configure(bg="white")
tk.wm_attributes('-transparentcolor', 'white')
# tk.attributes("-alpha", 0.3)#设置透明度
image2 = Image.open("E:\\Figure_1.jpg")
image3 = image2.resize((410, 430)) # 设置图片大小
photo = ImageTk.PhotoImage(image3) # 引入图片
w = tk.winfo_screenwidth() # 获取屏幕宽
h = tk.winfo_screenheight() # 获取屏幕高
cn = Canvas(tk, height=w, width=h, bg="white")
cn.pack()
cn.create_image(200, 100, image=photo)
tk.mainloop()
不正经的弹窗
我们已经搞定了不规则弹窗,再来介绍一个不正经的弹窗。
import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
tk = tkinter.Tk()
tk.title("窗口") # 设置窗口名称
tk.geometry("400x420+400+420")
tk.overrideredirect(True)
tk.configure(bg="white")
tk.wm_attributes('-transparentcolor', 'white')
tk.attributes("-alpha", 0.3)#设置透明度
image1 = Image.open("E:\\install\\user\\flask_web_test\\test\\Figure_1.jpg") # 打开图片
image = image1.resize((210, 230)) # 设置图片大小
photo = ImageTk.PhotoImage(image) # 引入图片
image2 = Image.open("E:\\install\\user\\flask_web_test\\test\\Figure_1.jpg")
image3 = image2.resize((410, 430)) # 设置图片大小
photo1 = ImageTk.PhotoImage(image3) # 引入图片
w = tk.winfo_screenwidth() # 获取屏幕宽
h = tk.winfo_screenheight() # 获取屏幕高
cn = Canvas(tk, height=w, width=h, bg="white")
cn.pack()# bg="pink"
a=2
def update_test(e):
time.sleep(0.2)
cn.delete(tkinter.ALL)
tk.update()
global a
x = tk.winfo_x()
y = tk.winfo_y()
tk.geometry("400x420+%s+%s" % (x, y))
if a==2:
cn.create_image(200, 100, image=photo1)
a=1
else:
cn.create_image(200, 100, image=photo)
a=2
tk.bind("<Configure>", update_test)
tk.mainloop()
我的弹窗对我感到心动。哈哈,不知道能不能撩妹,有没有撩到你很关键。
相关推荐:
过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)–双向奔赴的火柴人
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111347.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...