简体   繁体   English

如何在 Tkinter 中为每页添加图像作为背景?

[英]How can I add an image as my background per page in Tkinter?

I want to know how can I add an image as my background per page in Tkinter, When you run the program, I want to have a background in the "Checkout" page and also when I click on the "Exit" page I want a different image background, How can I do that?我想知道如何在 Tkinter 中为每页添加一个图像作为我的背景,当您运行该程序时,我希望在“结帐”页面以及单击“退出”页面时都有一个背景不同的图像背景,我该怎么做? Is it impossible?不可能吗? If yes, How can I add an image background on both pages?如果是,如何在两个页面上添加图像背景?

Here's my code so far (don't mind if it's messy, it's just part of my codes):到目前为止,这是我的代码(不要介意它是否凌乱,它只是我代码的一部分):

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()

you can try this你可以试试这个

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