Python 如何从另一个模块中的文本字段中获取值?
我已经用tkinter GUI编写了一个简单的程序。整个代码都在一个大模块中,我想将其拆分为两个或三个模块,以将逻辑与GUI分离。 以下是示例代码: main.py: gui.py: defs.py: 我无法让Python 如何从另一个模块中的文本字段中获取值?,python,user-interface,tkinter,module,Python,User Interface,Tkinter,Module,我已经用tkinter GUI编写了一个简单的程序。整个代码都在一个大模块中,我想将其拆分为两个或三个模块,以将逻辑与GUI分离。 以下是示例代码: main.py: gui.py: defs.py: 我无法让getVar工作;我希望它从文本字段中获取值,但在尝试不同的解决方案后,我得到的只是名称或属性错误 有没有可能这样做?或者我的想法完全错了?如果是的话,请告诉我怎么做。我想知道这段代码是否还有更多问题。好的,让我们从头开始,下面是代码的一个工作示例: import tkinter cl
getVar
工作;我希望它从文本字段中获取值,但在尝试不同的解决方案后,我得到的只是名称或属性错误
有没有可能这样做?或者我的想法完全错了?如果是的话,请告诉我怎么做。我想知道这段代码是否还有更多问题。好的,让我们从头开始,下面是代码的一个工作示例:
import tkinter
class guitest:
def __init__(self):
win1 = tkinter.Tk()
self.field1 = tkinter.Text(win1)
self.field1.grid(column=0, row=0)
self.but1 = tkinter.Button(win1, text='click', command=self.getVar)
self.but1.grid(column=1, row=0)
win1.mainloop()
def getVar(self):
captured = str(self.field1.get("1.0", tkinter.END))
print captured
inst1 = guitest()
现在,在分解这段代码之前,你应该问问自己,你想要的理由是否足够强大。如果你的答案是肯定的(三思而后行),一种可能的方法是:
但是再次强调,在分解像这样的小部件之前要三思而后行。。。只是说:)非常感谢!正如我在开始时提到的,我的程序很简单,但是源文件变大了,上面的代码只是一个示例,所以拆分它是合理的:-)
import tkinter, defs
class guitest:
def __init__(self):
win1 = tkinter.Tk()
self.field1 = tkinter.Text(win1)
self.field1.grid(column = 0, row = 0)
self.but1 = tkinter.Button(win1, text='click',
command=defs.getVar)
self.but1.grid(column = 1, row = 0)
win1.mainloop()
def getVar():
captured = str(field1.get(1.0))
import tkinter
class guitest:
def __init__(self):
win1 = tkinter.Tk()
self.field1 = tkinter.Text(win1)
self.field1.grid(column=0, row=0)
self.but1 = tkinter.Button(win1, text='click', command=self.getVar)
self.but1.grid(column=1, row=0)
win1.mainloop()
def getVar(self):
captured = str(self.field1.get("1.0", tkinter.END))
print captured
inst1 = guitest()
# main.py
import gui
inst1 = gui.guitest()
# gui.py
import tkinter
import defs
class guitest:
def __init__(self):
win1 = tkinter.Tk()
self.field1 = tkinter.Text(win1)
self.field1.grid(column=0, row=0)
self.but1 = tkinter.Button(win1, text='click', command=self.getVar)
self.but1.grid(column=1, row=0)
win1.mainloop()
def getVar(self):
defs.getVar(self)
# defs.py
import tkinter
def getVar(guitest_inst):
captured = str(guitest_inst.field1.get("1.0", tkinter.END))
print captured