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

2024-06-23 03:15:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我用tkinter GUI编写了一个简单的程序。整个代码都在一个大模块中,我想把它分成两到三个模块,把逻辑和图形用户界面分开。 以下是示例代码:

在主.py公司名称:

import gui
inst1 = gui.guitest()

在图形用户界面.py公司名称:

^{pr2}$

在定义.py公司名称:

def getVar():
    captured = str(field1.get(1.0))

我不能让getVar工作;我希望它从文本字段中获取值,但是在尝试了不同的解决方案之后,我得到的只是名称或属性错误。 有没有可能做到这一点?或者我的想法完全错了?如果是的话,请告诉我怎么做。我想知道这个代码是否还有更多的问题。在


Tags: 模块代码pyimport程序名称示例tkinter
1条回答
网友
1楼 · 发布于 2024-06-23 03:15:51

好吧,让我们从头开始,下面是一个代码的工作示例:

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

现在,在分解这段代码之前,你应该问问自己你想要的理由是否足够强大。如果你的回答是肯定的(三思而后行),一种可能的方法是:


^{pr2}$
# 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

但是,在分解像这样的小部件之前,请三思而后行。。。只是说:)

相关问题 更多 >

    热门问题