【问题标题】:Error: _tkinter.TclError: can't invoke "wm" command: application has been destroyed错误:_tkinter.TclError:无法调用“wm”命令:应用程序已被销毁
【发布时间】:2013-10-23 00:45:38
【问题描述】:

我在三个不同的文件上有三个类,通过 GUI 获取用户输入

#file1
class GetInfo1():
    def getInfo1():
        #my code
        return info1
#file2
 class GetInfo2():
    def getInfo2():
        #my code
        return info2
 #file3
 class GetInfo3():
    def getInfo3():
        #my code
        return info3

从不同的文件Getinformation.py调用这些方法 该文件将是

from GetInfo1 import *
from GetInfo2 import *
from GetInfo3 import *

object1 = GetInfo1()
getInfor1 = object1.getInfo1()
print getInfor1

object2 = GetInfo2()
getInfor2 = object2.getInfo2()
print getInfor2

object3 = GetInfo3()
getInfor3 = object3.getInfo3()
print getInfor3

类如下:

from Tkinter import *

root = Tk()
app = Frame(root)

entry = Entry(app)
entry.grid()


class GetInfo1():

def OnClick(self):
    global input1
    input1 = entry.get()
    #print ("You have entered %s"%input1)
    root.destroy()
    return input1

def getInfo1(self):

    '''Window'''
    global input1
    root.title("Input Permutation Range ")
    root.geometry("300x200")
    app.grid()
    label = Label (app, text="Please Enter the propogation range ( 2 - 4)")
    label.grid()

    '''Button'''
    Object2 = AskPermutationRange()
    button = Button (app, text="Submit", command=Object2.OnClick)
    button.grid()
    root.focus_set()
    root.mainloop()
    return input1

得到getInfor1, getInfor2 指定但 运行第三个对象时出错 _tkinter.TclError: can't invoke "wm" command: application has been destroyed 我怎样才能再次调用应用程序。提前致谢

【问题讨论】:

    标签: python object button tkinter command


    【解决方案1】:

    所有该消息的意思是您在销毁根窗口后调用了“wm”命令之一(例如:wm_title、wm_geometry 和其他一些命令)。 (注意:“geometry”和“title”是“wm_geometry”和“wm_title”的简单快捷方式)。

    您正在以一种非常不寻常的方式使用 tkinter。 Tkinter 旨在让您创建 Tk 的单个实例,并且只调用一次 mainloop。在你的应用程序过程中你需要多次停止和启动 Tkinter 有什么原因吗?如果你需要做的只是弹出一些模态对话框并等待用户输入数据,你可以做到这一点,而无需每次都创建一个新的 Tk 实例。

    【讨论】:

    • 是的,现在我得到了解决方案,我将我的代码整理到一个文件中,并且只调用了一次 mainloop()!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2019-06-15
    • 2017-12-31
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多