python tkinter背景图片_如何在tkinter中有背景图像和按钮?

我找到了一个简单的方法来做你想做的事情,这比我在评论中的建议要简单得多。基本步骤是:创建一个tkinter.Canvas,用Canvas.create_image()显示图像,然后创建一个Canvas.create_window(),最后将tkinter.Button放入中。请注意,每个Canvas“窗口”只能容纳一个小部件,因此如果要在图像上放置多个按钮,则必须重复最后两个步骤。

查看下面的代码可能更容易理解:import tkinter as tk

from PIL import ImageTk, Image

class CanvasButton:

def __init__(self, canvas):

self.canvas = canvas

self.number = tk.IntVar()

self.button = tk.Button(canvas, textvariable=self.number,

command=self.buttonclicked)

self.id = canvas.create_window(50, 100, width=25, height=25,

window=self.button)

def buttonclicked(self):

self.number.set(self.number.get()+1) # auto updates Button

root = tk.Tk()

root.resizable(width=False, height=False)

root.wm_attributes("-topmost", 1)

imgpath = 'archipelago_big.gif'

img = Image.open(imgpath)

photo = ImageTk.PhotoImage(img)

canvas = tk.Canvas(root, bd=0, highlightthickness=0)

canvas.pack()

canvas.create_image(0, 0, image=photo)

CanvasButton(canvas) # create a clickable button on the canvas

root.mainloop()

点击几次按钮后的效果如下:

你可能感兴趣的:(python,tkinter背景图片)