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

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日

悬赏问题

  • ¥15 github符合条件20分钟秒到账,github空投 提供github账号可兑换💰感兴趣的可以找我交流一下
  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?