2016-10-01 14 views
-1

숫자 "0-9"+ "a"가있는 키패드가있는 프로젝트에서 작업하고 있습니다. 한 번에 하나씩 여러 입력 상자를 단추에서 생성 된 숫자 조합을 업데이트하려면 싶네요. 내가 겪고있는 문제는 그 시점에 어떤 입력 상자에 포커스가 있는지 알려주는 방법을 찾는 것입니다. 일부 검색을 수행하고 focus_get()을 사용하여 선택한 입력란에 대해 다른 숫자를 인쇄 할 수 있지만 해당 번호가 변경됩니다. 마지막으로 entry_0과 비슷한 이름의 입력 상자를 클릭하고 정수 상자를 선택한 상자를 클릭하여 다른 상자를 클릭하고 다른 상자를 전달할 수 있기를 원합니다. 정수.엔트리가 초점을 맞추는 방법 (Tkinter)

벨로우 (Bellow)는 인터넷 검색으로 찾은 가장 친숙한 코드로, 원하는 것을 수행 할 수있는 것으로 가장 잘 알려져 있지만 코드가 실행될 때마다 인쇄되는 숫자가 다릅니다.

from Tkinter import * 
root=Tk() 
e1=Entry(root) 
e1.pack() 
e2=Entry(root) 
e2.pack() 
def handleReturn(event): 
    print "return: event.widget is",event.widget 
    print "focus is:",root.focus_get() 

root.bind("<Return>",handleReturn) 

root.mainloop() 
+0

내부 위젯 이름은 임의입니다. 귀하의 코드는 잘 작동합니다. –

+0

'root.focus_get()'과'event.widget'이 Entry 객체를 주며 변수에 할당 할 수 있으므로 (예 :'selected = event.focus_get()') 숫자를 사용하면됩니다. 텍스트를 변경하려면'selected.insert (End, "Hello World!")'. 정말로 이름이 필요한 경우'e1.name = 'entry_1 ''을 사용하고'selected.name'을 사용할 수 있습니다 – furas

답변

0

감사합니다. 몇 가지 사소한 조정을 통해 원하는대로 작동시킬 수있었습니다.

from Tkinter import * 

root=Tk() 
e1=Entry(root) 
e1.pack() 
e2=Entry(root) 
e2.pack() 
def handleReturn(event): 
    test = root.focus_get() 
    print test.get() 

root.bind("<Return>",handleReturn) 

root.mainloop() 
관련 문제