当前位置: 代码迷 >> python >> tkinter python和全局命令
  详细解决方案

tkinter python和全局命令

热度:56   发布时间:2023-07-16 10:43:33.0

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

从另一个类或函数访问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)访问它。