python画布添加背景图片_Python 设置 Canvas 背景图片且支持全屏显示

本文介绍了如何在Python的Tkinter库中使用Canvas组件设置背景图片,并确保图片能全屏显示且随窗口大小调整。通过创建一个继承自Canvas的类并绑定事件,实现在点击时打印鼠标坐标,同时展示了如何避免PhotoImage对象被销毁的问题。
摘要由CSDN通过智能技术生成

图1 全屏显示图片

由于 PhotoImage 若没有被引用,便会自动销毁,所以需要显示的引用它:

from tkinter import Tk, Canvas

from PIL import Image, ImageTk

class CanvasMeta(Canvas):

def __init__(self, master, cnf={}, **kw):

super().__init__(master, cnf, **kw)

self.photo = None # 显示的引用 PhotoImage

def set_photo(self, photo):

'''设置背景图'''

# 使用实例变量引用避免 PhotoImage 被销毁

self.photo = ImageTk.PhotoImage(file=photo)

为了查看画布的坐标,需要绑定事件:

class Graph(CanvasMeta):

def __init__(self, master, cnf={}, **kw):

super().__init__(master, cnf, **kw)

self.bind('<1>', self.print_xy)

def print_xy(self, event):

print(event.x ,event.y)

下面可以直接查看背景图片:

def run(name):

root = Tk()

self &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值