用Python新建一个任意形状的窗口本质是什么呢?其实就是去掉窗口的标题栏,然后把一种颜色设置为透明色。这样操作系统就不会渲染这种颜色,于是乎就呈现出仅图片的形状。下面的程序运行后会显示一个在计算机桌面上的姑娘。
以下是一个例子,当然也可以不用Sprite新建角色,直接用create_image创建图形也是一样的。
""" 本程序需gameturtle模块支持。安装方法是按win+r键,打开命令提示符, 即管理员窗口,输入以下命令 : pip install gameturtle """ import tkinter from PIL import Image, ImageTk from gameturtle import Sprite root = tkinter.Tk() root.config(bg='white') # 不显示标题栏 root.overrideredirect(True) # 设置白色透明色,这样图片中所有白色区域都被认为是透明的了 root.wm_attributes('-transparentcolor', 'white') # 设置图片描绘的坐标,注意乘号是字母x #root.geometry(f'{w}x{h}+200+100') # 不允许修改大小 root.resizable(False, False) cv = tkinter.Canvas(root,width=w*4,height=h*3,bg='white',bd=0) cv.config(highlightbackground = "white", highlightcolor= "white") cv.pack() # 打开图片并设置尺寸 image = Image.open('姑娘2.jpg') w,h = image.width//2,image.height//2 image = image.resize((w, h)) girl = Sprite(cv,image) girl.say('你好,我是姑娘',20) root.mainloop()
发表评论