tkinter python 和全局命令

tkinter python and global command

我是 python 的新手,我开始使用 tkinter 构建一个简单的 GUI。 我环顾四周,发现有几种方法可以使用 tkinter 进行编程(或一般编程)

第一种方法是过程式的,推荐的方法是OOP(如果我错了请纠正我)所以这是问题:

假设我得到了这段代码并且我已经导入了库:

root = Tk()
ipLabel = Label(root, text='IP Address:', fg='blue', bg='cyan')
ip = Entry(root)
ipLabel.grid(row=0, column=0)
ip.grid(row=0, column=1, padx=1, pady=3)
root.mainloop()

现在因为全局范围内的所有代码我可以通过从任何其他函数执行 ip.get() 或 class

来访问该条目

现在让我们以第二种方式使用相同的代码:

class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.Widgets()

    def Widgets(self):
        ipLabel = Label(self, text='IP Address:', fg='blue', bg='cyan')
        ip = Entry(self)
        ipLabel.grid(row=0, column=0)
        ip.grid(row=0, column=1, padx=1, pady=3)

MyApp = App()
MyApp.mainloop()

从另一个 class 或函数访问 ip 条目的最佳方法是什么?我试图做的并且它的工作只是将这个变量的全局放在函数中

def Widgets(self):
        global ip
        ipLabel = Label(top_frame, text='IP Address:', fg='blue', bg='cyan')
        ip = Entry(top_frame)

我想知道是否还有其他方法,最好的方法是什么?

提前致谢

在App.Widgets()中将ip替换为self.ip,然后就可以从其他地方访问了,例如MyApp.ip.