【问题标题】:Python: TKinter can't invoke "frame" command: application has been destroyedPython:TKinter 无法调用“框架”命令:应用程序已被销毁
【发布时间】:2017-11-12 14:05:18
【问题描述】:

我正在尝试建立一个由 4 个框架组成的 UI,这取决于一个主窗口。在每一帧中,都会有一个按钮。每个框架都有一个必须出现的标题/标签。

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

我的问题是,虽然 mainWindow 看起来很流畅,但程序似乎并没有设法创建框架。运行前没有报错,关闭后报错。

我已经阅读了许多不同的答案,关于必须让我的标签或其他人可以使用母版这一事实(据我所知,确实如此)。

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

这是我在关闭程序时看到的错误:

Traceback (most recent call last):
  File "PATH", line 15, in <module>
    KeyFrame = Frame(mainWindow, borderwidth = 2, relief = SUNKEN)

  File "PATH", line 2738, in __init__
    Widget.__init__(self, master, 'frame', cnf, {}, extra)

  File "PATH", line 2293, in __init__
    (widgetName, self._w) + extra + self._options(cnf))

_tkinter.TclError: can't invoke "frame" command: application has been destroyed

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

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

    【讨论】:

    • 你好,我应该把它放回去,但我已经试过了,不幸的是它没有改变任何东西。
    【解决方案2】:

    top.mainloop() 移动到程序的最后,因为您的 python 程序的执行将停止在那里,并且该行以下的任何内容都无法执行。

    【讨论】:

    • 你好,我应该把它放回去,但我已经试过了,不幸的是它没有改变任何东西。
    猜你喜欢
    • 2018-09-03
    • 2016-06-11
    • 2019-06-15
    • 2017-12-31
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多