2013-10-23 4 views
-3

다른 기능에 대한 입력 값을 어떻게 얻을 수 있습니까? 나는 아무것도 점점하지 오전이 스크립트 ... 하단에 코드 다음같은 클래스의 다른 파일에서 다른 함수의 값을 가져 오는 방법은 무엇입니까?

... 그것은 디버깅하는 동안 그러나이 될 수 있기

class XLogin(object): 
    def __init__(self, parent): 
     self.root = parent 
     self.root.title("Main frame") 
     self.frame = Tkinter.Frame(parent) 
     self.frame.pack() 
     server = Tkinter.Entry(root) 
     server.pack() 
     b = server.get() 
     btn = Tkinter.Button(self.frame, text="Open", command=self.yLogin(b)) 
     btn.pack() 

    def yLogin(self, a): 
     print a 
+0

수정 들여 쓰기를하고 출력을 인쇄, 당신이 원하는 무엇 분명하지 않다. –

+0

'command'는 함수를 호출 한 결과가 아닌 함수 객체 여야합니다 (yLogin을 호출 한 결과는 아무 것도 반환하지 않기 때문에 항상 None입니다). – geoffspear

답변

1

귀하의 질문은 불분명하다을 사용할 때 나는 문제 을 (찾을 생각한다 버튼을 오른쪽 클릭했을 때 엔트리 위젯에 무엇을 인쇄하지 않습니까?).

수정 :

당신은 항목의 버튼을 누를 때 그래서 server.get() 전화 (빈 문자열이 될 것이다)가 생성 된 인스턴트 위젯 뭐죠 그래서 캡처 할 bserver.get()로 정의된다. 또한 가장 중요한 command 함수 객체 따라서 따라서이 대신 시도 lambda

를 사용하여 반환해야합니다 :

import Tkinter 

class XLogin(object): 
    def __init__(self, parent): 
     self.root = parent 
     self.root.title("Main frame") 
     self.frame = Tkinter.Frame(parent) 
     self.frame.pack() 
     server = Tkinter.Entry(root) 
     #b = server.get() 
     server.pack() 
     btn = Tkinter.Button(self.frame, text="Open", command=lambda: self.yLogin(server.get())) 
     btn.pack() 

    def yLogin(self, a): 
     print a 

root = Tkinter.Tk() 
app = XLogin(root) 
root.mainloop() 
관련 문제