Tkinter ImageTk如何在相框中插入图像标签?

2024-09-30 20:35:55 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在这个GUI中,我尝试插入我的图像(书籍.png)变成一个框架。这个想法是,红色的框架在窗口的顶部,图像居中,而蓝色的框架则是空的。代码如下:

import tkinter as tk
from PIL import ImageTk, Image

class MainApp(tk.Frame):

    def __init__(self, master=None):

        self.master=master
        super().__init__(self.master)

        #----------------master config------------------
        self.master.geometry("{0}x{1}+0+0".format(self.master.winfo_screenwidth()-15, self.master.winfo_screenheight()-75))
        self.master.resizable(False, False)
        self.master.iconbitmap("Book.ico")

        #----------------frame config------------------
        self.pack(fill="both", expand=True)
        self.fState=False

        self.createWidgets()

    def createWidgets(self):

        MMenuFrame1=tk.Frame(self, bg="red").pack(fill="both", expand=True)
        MMenuFrame2=tk.Frame(self, bg="blue").pack(fill="both", expand=True)

        self.logo=Image.open("book.png")
        self.logo=self.logo.resize((150,150), Image.ANTIALIAS)
        self.logo=ImageTk.PhotoImage(self.logo)
        self.mainMenuLogo=tk.Label(MMenuFrame1, image=self.logo)
        self.mainMenuLogo.pack(expand=False)
        self.mainMenuLogo.image=self.logo


if __name__ == "__main__":

    root=tk.Tk()
    app=MainApp(master=root)
    app.mainloop()

但是当我运行这个时,它显示为this

我做错什么了?你知道吗


Tags: 图像imageselfmaster框架falsetruefill