簡體   English   中英

如何在 Tkinter 中為每頁添加圖像作為背景?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM