首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >过分了,别人用来做桌面应用开发,这家伙却用来撩妹(6)-隐形的弹窗

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(6)-隐形的弹窗

作者头像
大家一起学编程
发布2021-09-18 10:51:29
发布2021-09-18 10:51:29
93800
代码可运行
举报
运行总次数:0
代码可运行

前言

在前面已经学习了很多,制作弹窗的方式,但是没有一个透明的弹窗。这次我们来做一个透明的弹窗好了。如图,先来感受一下。

还记得以前电脑上莫名其妙安装的游戏吗?窗口并不是方形的。以及在双十一左右时,你的电脑会莫名其妙的多一个红包窗口显示在桌面上,那这些是如何实现的呢,我们一起来看一下吧。

隐形弹框

我们需要先来制作一个隐形弹框,一起来参考一下吧。

1、创建一个窗口

代码语言:javascript
代码运行次数:0
运行
复制
tk = tkinter.Tk()
tk.title("窗口")  # 设置窗口名称
tk.geometry("400x420+400+420")
tk.mainloop()

2、去除标题栏

代码语言:javascript
代码运行次数:0
运行
复制
tk.overrideredirect(True)

3、设置窗口透明

代码语言:javascript
代码运行次数:0
运行
复制
tk.wm_attributes('-transparentcolor', 'white')#将白色变为无色

4、设置透明度

代码语言:javascript
代码运行次数:0
运行
复制
tk.attributes("-alpha", 0.3)#设置透明度

最终效果:千万不要说啥都没有,真的有一个弹框。

不规则弹框

在上面估计有人觉得我在忽悠人,那我们在弹框里面加点东西好了。

代码语言:javascript
代码运行次数:0
运行
复制
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()

不正经的弹窗

我们已经搞定了不规则弹窗,再来介绍一个不正经的弹窗。

代码语言:javascript
代码运行次数:0
运行
复制
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()

我的弹窗对我感到心动。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大家一起学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档