如何在图像上方放置按钮? (tkinter)

时间:2020-10-15 16:13:35

标签: python python-3.x tkinter

如何在图像上放置按钮并将其保持在窗口中央?代码工作正常,但是按钮在图片下方,我无法点击

from tkinter import Frame, Tk, Label, Button
from PIL import Image, ImageTk

class Example(Frame):
    def __init__(self, master, *pargs):
        Frame.__init__(self, master, *pargs)

        self.image = Image.open("folder\\file.gif")
        self.img_copy= self.image.copy()

        self.background_image = ImageTk.PhotoImage(self.image)

        self.background = Label(self, image=self.background_image)
        self.background.pack(fill="both", expand="YES")
        self.background.bind('<Configure>', self._resize_image)

    def _resize_image(self,event):

        new_width = event.width
        new_height = event.height

        self.image = self.img_copy.resize((new_width, new_height))

        self.background_image = ImageTk.PhotoImage(self.image)
        self.background.configure(image =  self.background_image)

root = Tk()
root.title("Title")
root.geometry("600x600")
root.configure(background="black")

e = Example(root)
e.pack(fill="both", expand="YES")

btn=Button(root,text="Hello World").pack()

root.mainloop()

1 个答案:

答案 0 :(得分:1)

我不知道这是否适合您的实际应用程序,但是对于问题中的代码,最简单的解决方案是使用place。使用place,您可以使用相对位置来使一个小部件在另一个小部件中居中。

作为通用布局管理器,

place也不是最好的选择,但是对于非常特定的用例,它是完成任务的正确工具。在以下示例中,通过使用Examplerelxrely,将按钮放置在anchor框架的中央。 in_参数指定相对坐标相对于哪个窗口小部件。

btn=Button(root,text="Hello World")
btn.place(in_=e, relx=.5, rely=.5, anchor="c")