Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从另一个模块中的文本字段中获取值?_Python_User Interface_Tkinter_Module - Fatal编程技术网

Python 如何从另一个模块中的文本字段中获取值?

Python 如何从另一个模块中的文本字段中获取值?,python,user-interface,tkinter,module,Python,User Interface,Tkinter,Module,我已经用tkinter GUI编写了一个简单的程序。整个代码都在一个大模块中,我想将其拆分为两个或三个模块,以将逻辑与GUI分离。 以下是示例代码: main.py: gui.py: defs.py: 我无法让getVar工作;我希望它从文本字段中获取值,但在尝试不同的解决方案后,我得到的只是名称或属性错误 有没有可能这样做?或者我的想法完全错了?如果是的话,请告诉我怎么做。我想知道这段代码是否还有更多问题。好的,让我们从头开始,下面是代码的一个工作示例: import tkinter cl

我已经用tkinter GUI编写了一个简单的程序。整个代码都在一个大模块中,我想将其拆分为两个或三个模块,以将逻辑与GUI分离。 以下是示例代码:

main.py: gui.py: defs.py: 我无法让
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