tkinter中按钮后面的图像(PhotoImage)

时间:2013-04-03 19:09:37

标签: python button tkinter label background-image

我一直在尝试添加图像,以便我的按钮位于图像的顶部,但只能使图像完全覆盖所有内容,或者强制图像位于按钮覆盖的水平部分下方。 / p>

以下是相关代码:

class MainMenu(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.master = master
        self.initUI()

    def initUI(self):
        self.master.title("Adventure")
        bg = PhotoImage(file="Background-gif.gif")

        newGameButton = Button(self, text="New Game", height=2, width=20, command=self.newGame)
        newGameButton.pack(side=TOP, pady=50)
        loadGameButton = Button(self, text="Load Game", height=2, width=20, command=self.loadGame)
        loadGameButton.pack(side=TOP)
        quitButton = Button(self, text="Quit", height=2, width=20, command=self.close)
        quitButton.pack(side=TOP, pady=50)

        label = Label(self, image=bg)
        label.image = bg
        label.pack(fill=BOTH, expand=1)

        self.pack()

非常感谢。

1 个答案:

答案 0 :(得分:7)

您可以在画布上放置图像,然后place a button on the canvas

import Tkinter as tk
import ImageTk

FILENAME = 'image.png'
root = tk.Tk()
canvas = tk.Canvas(root, width=250, height=250)
canvas.pack()
tk_img = ImageTk.PhotoImage(file = FILENAME)
canvas.create_image(125, 125, image=tk_img)
quit_button = tk.Button(root, text = "Quit", command = root.quit, anchor = 'w',
                    width = 10, activebackground = "#33B5E5")
quit_button_window = canvas.create_window(10, 10, anchor='nw', window=quit_button)    
root.mainloop()

enter image description here