2013-08-28 2 views
0

옵션의 인덱스로 OptionMenu의 값을 설정하려고하지만 실제 옵션 값 자체는 사용하지 않습니다. 내 OptionMenu 옵션이있는 경우인덱스로 파이썬 OptionMenu 설정

예를 들어, [ "하나", "둘", "세"], 나는이 "하나는"OptionMenu하지, My_Option_Menu.set("one")

My_Option_Menu.set(options[0])를 작성하여 설정할 수 있도록하려면 다른 두 OptionMenus가 설정되는 것에 따라 목록에 의해 동적으로 채워집니다. 따라서 인덱스로 옵션을 참조하고 실제 값을 참조하지 않으려합니다. OptionMenu 개체가 내 options[0] 메서드가 작동 할 수 있도록 현재 채워진 옵션 목록을 반환하는 방법이 있습니까?

감사합니다.

답변

1

이렇게하는 가장 간단한 방법은 옵션 메뉴를 정의하는 데 사용되는 목록의 복사본을 유지하는 것입니다. 그런 다음 인덱스를 사용하여 목록에서 값을 가져 와서 관련 변수에 할당 할 수 있습니다. 예를 들어

:

options = ["one","two","three"] 
... 
self.menuVar = tk.StringVar(master) 
self.optionMenu = tk.OptionMenu(master, self.menuVar, *options) 
... 
self.menuVar.set(options[0]) 

또 다른 옵션은 위젯 메뉴 객체 동료를 얻고, 메뉴는 지정된 인덱스의 텍스트를 얻을 명령을 사용하여, 변수 설정하는 것을 사용하는 것입니다

value = self.optionMenu["menu"].entrycget(0, "label") 
self.menuVar.set(value) 
+0

완벽! 두 번째 옵션은 내가 찾고있는 것입니다. 감사! – dmranck

관련 문제