Python:TKinter无法调用“frame”命令:应用程序已被销毁

2024-09-28 21:59:16 发布

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

我正在尝试放置一个由4个框架组成的UI,它依赖于一个主窗口。在每一帧中,都会有一个按钮。每个帧都有一个必须显示的标题/标签。在

窗口上有一个图像背景,我的目标是编码,使框架背景是透明的(或黑色的)。这并不重要)。在

我的问题是,虽然主窗口看起来很平滑,但程序似乎无法创建框架。我在运行之前没有错误,但是在关闭它之后有一个错误。在

我读过很多不同的答案,关于大师必须提供给我的标签或类似的(据我所知,是这样)。在

    from tkinter import *
    top = Tk()

    mainWindow = Canvas(top, bg = "blue", height = 500, width = 600)
    filename = PhotoImage(file="C:\matrix.png")
    background_label = Label(top, image=filename)
    background_label.place(x=0, y=0, relwidth=1, relheight=1)

    mainWindow.pack()
    top.mainloop()


    # fenêtre load Key
    KeyFrame = Frame(mainWindow, borderwidth = 2, relief = SUNKEN)
    KeyFrame.pack(side = LEFT, padx = 30, pady = 30)

    # fenêtre load Fichier
    FileFrame = Frame(mainWindow, borderwidth = 2, relief = SUNKEN)
    FileFrame.pack(side = RIGHT, padx = 10, pady = 10)

    # Labels
    KeyLabel = Label(KeyFrame, text = "Choix de la matrice...",  bg = "black").pack(fill = BOTH, expand = "YES")
    FileLabel = Label(FileFrame, text = "Choix de la fichier...", bg = "black").pack(fill = BOTH, expand = "YES")

以下是我关闭程序时看到的错误:

^{pr2}$

Tags: 框架top错误标签filenamelabelpackbg
2条回答

top.mainloop()移到程序的末尾,因为python程序的执行就停止在那里,并且不能执行该行以下的任何内容。在

在创建所有小部件之后,top.mainloop()应该被称为。因为只要窗口打开,脚本就不会在mainloop()之后运行任何行。试着把它放在最后。在

相关问题 更多 >