如何在图像上放置按钮并将其保持在窗口中央?代码工作正常,但是按钮在图片下方,我无法点击
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()
答案 0 :(得分:1)
我不知道这是否适合您的实际应用程序,但是对于问题中的代码,最简单的解决方案是使用place
。使用place
,您可以使用相对位置来使一个小部件在另一个小部件中居中。
place
也不是最好的选择,但是对于非常特定的用例,它是完成任务的正确工具。在以下示例中,通过使用Example
,relx
和rely
,将按钮放置在anchor
框架的中央。 in_
参数指定相对坐标相对于哪个窗口小部件。
btn=Button(root,text="Hello World")
btn.place(in_=e, relx=.5, rely=.5, anchor="c")