2017-12-16 10 views
-2

마우스 클릭에 따라 변수의 값이 변경되는 모듈이 있습니다.
이제 스크립트에서 해당 모듈을 가져온 다음 모듈의 변수 값이 변경 될 때마다 인쇄하려고합니다.Python, 모듈 변수의 변경 사항을 스크립트에 바인딩하는 방법은 무엇입니까?

+1

코드를 보여주십시오. 'tkinter'는 값을 유지하기 위해'StringVar','IntVar()'등의 클래스를 가지고 있으며,이 값에 함수를 할당 할 수 있고, 값이 변경되면 클래스는이 함수를 실행할 것입니다. Look for [StringVar.trace()] (http://effbot.org/tkinterbook/variable.htm) BTW : 처음부터 비슷한 클래스를 만들 수도 있습니다. – furas

+0

코드가 너무 길어서 필자가 필요로하는 절차는 모듈의 스크립트에서 함수를 호출하는 방법입니다. – Wadaane

+1

'import module; – furas

답변

0

콜백을 my 클래스 생성자에 전달하여 문제가 해결되었습니다.
그런 다음 해당 콜백을 StringVar에서 사용했습니다. module.py에서 script.py

import module 
def script_callback(a, b, c): 
    print(module.canvas.var.get()) 
canvas = module.MyClass(callback=script_callback) 

에서

: 브라이언과 furas에

class MyClass(): 
    def __init__(callback): 
     self.var = StringVar() 
     self.var.trace('w', callback) 
     self.var.set(data) 

감사합니다.