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

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 Selenium+docker Chrome不能运行
  • ¥15 能给我一些人生建议吗
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥50 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
  • ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
  • ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
  • ¥15 R语言shiny包和ncdf4包报错
  • ¥15 origin绘制有显著差异的柱状图和聚类热图