Tkinter Python,如何将模块变量中的更改绑定到我的脚本?
我有一个模块,可以根据鼠标点击改变变量的值。Tkinter Python,如何将模块变量中的更改绑定到我的脚本?,tkinter,python-3.6,Tkinter,Python 3.6,我有一个模块,可以根据鼠标点击改变变量的值。 现在,我想在脚本中导入该模块,然后在模块的变量值发生变化时打印。通过将回调传递到my class构造函数中解决了这个问题。 然后在StringVar中使用该回调 在script.py中 import module def script_callback(a, b, c): print(module.canvas.var.get()) canvas = module.MyClass(callback=script_callback) 在mod
现在,我想在脚本中导入该模块,然后在模块的变量值发生变化时打印。通过将回调传递到my class构造函数中解决了这个问题。
然后在StringVar中使用该回调 在script.py中
import module
def script_callback(a, b, c):
print(module.canvas.var.get())
canvas = module.MyClass(callback=script_callback)
在module.py中:
class MyClass():
def __init__(callback):
self.var = StringVar()
self.var.trace('w', callback)
self.var.set(data)
感谢Bryan和furas。显示您的代码
tkinter
具有类StringVar
,IntVar()
,(等)以保留值,您可以将函数分配给此值,当值发生更改时,类将执行此函数。顺便说一句:你也可以从头开始构建类似的类。代码太长了,我需要的过程是如何调用脚本中的函数,从模块导入模块;module.function()
您在模块中的函数应该获得函数作为agment(所谓的回调
)(如按钮中的命令=
或绑定()
或之后()
获取函数名)
从模块中获取函数(从脚本中获取函数),然后它可以使用()
-函数来自脚本()
。除非此变量是Tkinter变量类之一(StringVar
,等等),否则无法执行所需操作。