我需要将函数中的信息传递给类。该类在tkinter中保存GUI信息,其中一些函数为GUI工作和输出数据。如何向类提供函数的输出?
示例:
class Page1(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
#setting up a label to change based off output:
self.testing_label = tk.Label(self, text='OUTPUT OF WORKER WILL GO HERE', width=20)
self.testing_label.pack(side="top")
#function that does work:
def worker(x):
work = x + 5
return(work)
如何将返回的work
放入要在标签中显示的类中?
答案 0 :(得分:1)
要在任何类的实例中设置变量的值,您只需要对该类的引用。您可以将其传递到worker
,也可以确保所有调用worker
都有对该页面的引用。
如果没有看到更多代码,就无法给出一个具体的例子。仅根据您提出的问题,您可以这样做:
def worker(x):
work = x + 5
return(work)
...
page = Page()
...
result = worker(42)
page.testing_label.configure(text=str(result))
更好的是页面提供一个接口,以便调用者不必知道内部小部件的名称。例如:
class Page1(Page):
...
def set_result(self, string):
self.testing_label.configure(text=string)
...
page = Page1()
...
result = worker(42)
page.set_result(result)
请注意,如果worker
实际上是Page1
内部的方法,您可以将其设为:
class Page1(Page):
...
def worker(self, x):
work = x + 5
self.testing_label.configure(text=str(work))