Python 3.x 如何更改每个页面的背景图像
是的,我确实知道如何配置背景图像,但是在这种情况下,我不知道引用什么作为小部件的父级,因为当我使用self时没有显示任何内容 关于代码示例,我将使用Bryan Oakley切换框架代码中的锅炉板:Python 3.x 如何更改每个页面的背景图像,python-3.x,tkinter,Python 3.x,Tkinter,是的,我确实知道如何配置背景图像,但是在这种情况下,我不知道引用什么作为小部件的父级,因为当我使用self时没有显示任何内容 关于代码示例,我将使用Bryan Oakley切换框架代码中的锅炉板: import tkinter as tk from tkinter import font as tkfont class SampleApp(tk.Tk): def __init__(self, *args, **kwargs): t
import tkinter as tk
from tkinter import font as tkfont
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.title_font = tkfont.Font(family='Helvetica', size=18, weight="bold", slant="italic")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
def show_frame(self, page_name):
frame = self.frames[page_name]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
**### Here for example this does nto do anything to the window**
self.background_image= tk.PhotoImage("image_path")
self.background_label = tk.Label(self, image=self.background_image)
self.background_label.place(x=0, y=0, relwidth=1, relheight=1)
self.background_label.image = self.background_image
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
提前感谢您的帮助 我刚刚注意到你的PhotoImage语法也是错误的。你可以把它读出来 应该是:
self.background_image= tk.PhotoImage(file="image_path")
另外添加
self.background\u label.img=self.background\u image
,然后您就都设置好了。我刚才注意到您的PhotoImage语法也是错误的。你可以把它读出来
应该是:
self.background_image= tk.PhotoImage(file="image_path")
同时添加
self.background\u label.img=self.background\u image
,然后您就都设置好了。,relwidth=1,relheight=1
?那太小了。。。。除此之外。。。这些是局部变量,当您离开\uuuuu init\uuuuu
时,它们将立即消失。。。也许你需要使用self.background\u标签让他们多呆一会儿?如果我是一个python解释器,我可能会销毁这些变量——它们不再需要了。我从另一篇文章中提取了这些代码,但尽管仍然没有图像出现,但您需要保留对图像的引用。在您的位置后添加背景\u label.img=背景\u图像method@HenryYik我也试过了还是没有image@PatrickArtner:1的relwidth
不小。相对宽度介于0和1之间,因此1实际上意味着它与容器一样宽。,relwidth=1,relheight=1
?那太小了。。。。除此之外。。。这些是局部变量,当您离开\uuuuu init\uuuuu
时,它们将立即消失。。。也许你需要使用self.background\u标签让他们多呆一会儿?如果我是一个python解释器,我可能会销毁这些变量——它们不再需要了。我从另一篇文章中提取了这些代码,但尽管仍然没有图像出现,但您需要保留对图像的引用。在您的位置后添加背景\u label.img=背景\u图像method@HenryYik我也试过了还是没有image@PatrickArtner:1的relwidth
不小。相对宽度介于0和1之间,所以一个实际上意味着它和它的容器一样宽。啊,基本上我缺少的是自我参考,我只是忘记了文件参数,因为我从我的主应用程序中提取它只是为了给这个问题做一个样本。啊,基本上我缺少的是自我参考,我只是忘记了文件参数,因为我从我的主应用程序中提取它应用程序只是为这个问题制作一个示例