2016-12-18 4 views
0

옵션 메뉴를 포함하는 GUI 수행 목록에서 옵션을 가져 오기 위해 다음 메뉴를 정의했지만 각 옵션이 다른 함수를 호출하도록하고 싶습니다. 그러나 나는 그것을하는 방법을 알아낼 수 없었다.Tkinter OptionMenu, 각 옵션마다 다른 func를 호출하는 방법

options = ["Modem ID: 20", 
       "Modem ID: 30", 
       "Modem ID: 40", 
       "Modem ID: 50"] 

    selected_Option 
    selected_Option = tk.StringVar(self) 
    selected_Option.set(options[0]) 
    drop_Menu =apply(OptionMenu, (self, selected_Option) + tuple(options)) 
    drop_Menu.place(relx=.809, y=5) 

답변

0

this을 확인하십시오. 옵션 메뉴는 함수를 호출하지 않고 기존 Tkinter 변수에 값을 저장합니다. 즉,이 변수를 간혹 확인하거나 GUI와 같은 일부 기능을 호출하는 기능이 필요합니다.

함수를 호출하는 메뉴를 원하면 regular menu입니다.

다음

당신은 옵션에 따라 명령을 추가는 (링크 위에서 촬영) :

물론
menubar = Menu(root) 
menubar.add_command(label="Hello!", command=hello) 
menubar.add_command(label="Quit!", command=root.quit) 

레이블이 "모뎀 : ID"입니다. # "을

0

당신이 StringVar.trace(..) 기능을 사용할 수 있습니다 값의 변경을 모니터링 한 다음 선택한 옵션에 따라 원하는대로 수행하십시오.

def onOptionChanged(*args): 
    modem_id = int(selected_Option.get().split(':')[1]) 
    if modem_id == 10: 
     # do something 
    elif modem_id == 20: 
     # do other stuff 
    ... 

... 
selected_Option = StringVar() 
selected_Option.trace('w', onOptionChanged) 
...