我在三个不同的文件上有三个类,通过 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
我如何再次重新调用应用程序。预先感谢
该消息的全部含义是,在销毁根窗口后,您正在调用“wm”命令之一(例如:wm_title、wm_geometry 和其他一些命令)。 (注意:“geometry”和“title”是“wm_geometry”和“wm_title”的简单快捷方式)。
您正在以一种非常不寻常的方式使用 tkinter。 Tkinter 旨在让您创建 Tk 的单个实例,并仅调用一次 mainloop。您是否需要在应用程序过程中多次停止和启动 Tkinter?如果您需要做的只是弹出一些模式对话框并等待用户输入数据,则无需每次都创建新的 Tk 实例。
您必须指定命令,例如- window.title("Kashyap 控股公司")
在命令之前- window.mainloop()
它肯定会起作用!