从另一个文件调用Tkinter对象

问题描述

class SneakerGuide(tk.Frame):

    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        
        global stockXURLInput
        stockXURLInput = Entry(sneakerBasicDetails)
        stockXURLInput.grid(row=5,column=1)

所以我有了这个类,并且在其中有一个初始化函数,并且我想从.get()中得到很多东西。我只是列举了一个例子。但是我试图在该类之外获取条目输入(实际上,我试图从另一个文件获取它,但是我知道如何导入它们和东西。在这种情况下,我将如何做?

解决方法

对于要在类外部访问的对象,必须使它们成为类的实例属性。

例如,您不会像示例中那样使用globalglobal的使用在很大程度上违反了使用类的目的。相反,您可以这样做:

class SneakerGuide(tk.Frame):

    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        
        self.stockXURLInput = Entry(sneakerBasicDetails)
        self.stockXURLInput.grid(row=5,column=1)

要从条目中获取值,您所需要的只是对类实例的引用。

root = tk.Tk()
...
guide = SneakerGuide(root)
...
print(f"The url is {guide.stockXURLInput.get9)}")

这不是tkinter所独有的,这是所有python对象的工作方式。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...