uncle1bo 2022-03-12 01:13 采纳率: 100%
浏览 559
已结题

python中使用tkinter实现透明png的显示

问题遇到的现象和发生背景

python中使用tkinter实现透明png的显示时结果不尽人意

问题相关代码,请勿粘贴截图
# -*- coding: UTF-8 -*-
import tkinter
 
root = tkinter.Tk()
root.title('uncle1bo')        #窗口标题
root.resizable(False, False)    #固定窗口大小
windowWidth = 400               #获得当前窗口宽
windowHeight = 400              #获得当前窗口高
screenWidth,screenHeight = root.maxsize()     #获得屏幕宽和高
geometryParam = '%dx%d+%d+%d'%(windowWidth, windowHeight, (screenWidth-windowWidth)/2, (screenHeight - windowHeight)/2)
root.geometry(geometryParam)    #设置窗口大小及偏移坐标
root.wm_attributes('-topmost',1)#窗口置顶
root.overrideredirect(True)     #窗口无边框
#label图片
img_gif = tkinter.PhotoImage(file = r"D:\Study\uncle1bo.logo.zs.png")#测试图片路径
label_img = tkinter.Label(root, image = img_gif)
label_img.pack()

root.mainloop()

img

运行结果及报错内容

img

我的解答思路和尝试过的方法

蛤蟆住了,一时没有想到

我想要达到的结果

可以透过图片,看到后面运行的窗口大概是

img

的效果,顺便问一下怎么让这个窗口定时[比如time.sleep(3)]之后自动关闭?

  • 写回答

2条回答 默认 最新

  • 关注

    参考
    https://www.jb51.net/article/212488.htm
    TRANSCOLOUR = 'gray'
    root.wm_attributes("-transparentcolor", TRANSCOLOUR) #设置'gray'为透明色
    label_img = tkinter.Label(root, image = img_gif, bg=TRANSCOLOUR) #设置 label 背景色为透明色'gray'
    定时3秒之后自动关闭是root.after(3000,lambda : root.quit())

    你题目的解答代码如下:

    # -*- coding: UTF-8 -*-
    import tkinter
    
    root = tkinter.Tk()
    root.title('uncle1bo')        #窗口标题
    root.resizable(False, False)    #固定窗口大小
    windowWidth = 400               #获得当前窗口宽
    windowHeight = 400              #获得当前窗口高
    screenWidth,screenHeight = root.maxsize()     #获得屏幕宽和高
    geometryParam = '%dx%d+%d+%d'%(windowWidth, windowHeight, (screenWidth-windowWidth)/2, (screenHeight - windowHeight)/2)
    root.geometry(geometryParam)    #设置窗口大小及偏移坐标
    root.wm_attributes('-topmost',1)#窗口置顶
    root.overrideredirect(True)     #窗口无边框
    
    TRANSCOLOUR = 'gray'
    root.wm_attributes("-transparentcolor", TRANSCOLOUR)  #设置'gray'为透明色
    
    #label图片
    img_gif = tkinter.PhotoImage(file = r"D:\Study\uncle1bo.logo.zs.png")#测试图片路径
    label_img = tkinter.Label(root, image = img_gif, bg=TRANSCOLOUR)  #设置 label 背景色为透明色'gray'
    label_img.pack()
    
    root.after(3000,lambda : root.quit()) # 定时3秒之后自动关闭
    
    root.mainloop()
    

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 已采纳回答 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥30 关于#硬件工程#的问题:求一下解题思路
  • ¥15 运筹学对偶单纯行法构造扩充问题
  • ¥20 XP系统的老电脑一开机就提示找不到rundll.exe,付费求解
  • ¥15 milvus查询出来的score怎么转换成0-1之间的相似性
  • ¥15 多ip服务器站群如何搭建l2tp服务器
  • ¥15 lvgl V9移植到linux开发板
  • ¥15 VB.net中在窗体中创建一个button控件来关闭窗体,但是提示错误,我该怎么办
  • ¥15 网上下载好的程序但是arduinoIDE编程报错,运行不了,哪里出错了,能具体给改一下吗
  • ¥15 Sharepoint JS开发 付费技术指导
  • ¥15 输入程序运行仿真后,烟雾值不实时检测,变成固定值