[英]How can I add an image as my background per page in Tkinter?
我想知道如何在 Tkinter 中為每頁添加一個圖像作為我的背景,當您運行該程序時,我希望在“結帳”頁面以及單擊“退出”頁面時都有一個背景不同的圖像背景,我該怎么做? 不可能嗎? 如果是,如何在兩個頁面上添加圖像背景?
到目前為止,這是我的代碼(不要介意它是否凌亂,它只是我代碼的一部分):
import tkinter as tk
from tkinter import *
class IceCream(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
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 (Checkout, Exit):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(Checkout)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class Checkout(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Checkout", font="times 40 bold")
label.pack(pady=30,padx=10)
label = tk.Label(self, text="Flavours", font="times 20 bold")
label.place(x=15, y=110)
self.sum_total=0
self.total_lbl=Label(self,font=("arial",17,'bold'),text=f'Total: {self.sum_total}')
self.total_lbl.place(x=250,y=440)
size=150
button1 = tk.Button(self, text="Start Again", font="times 15",
command=lambda: controller.show_frame(IceCream))
button1.place(x=20, y=440)
button2 = tk.Button(self, text="Exit", font="times 15",
command=lambda: controller.show_frame(Exit))
button2.place(x=480, y=440)
class Exit(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Thank you, " + '\n' + "Have a Good Day!!!", font="times 50 bold")
label.pack(anchor="c", ipady=180,ipadx=0)
app = IceCream()
app.mainloop()
你可以試試這個
import tkinter as tk
root = tk.Tk()
bgimg = tk.PhotoImage(file="test.png") ## "test.png" is the image of background
bg = tk.Label(root, image=bgimg) ## remember that tkinter only supports .png .gif .bmp
bg.pack()
frame = tk.Frame(root) ## this is the container for your widgets
frame.place(x=0, y=0)
tk.Button(frame, text="Button").pack()
root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.