0

オプションのインデックスによって OptionMenu の値を設定しようとしていますが、実際のオプション値自体は使用しません。

たとえば、私の OptionMenu にオプション ["one", "two", "three"] がある場合My_Option_Menu.set(options[0])、 ではなく、 と書くことでそれを "one" に設定できるようにしたいMy_Option_Menu.set("one")

OptionMenu は、他の 2 つの OptionMenus の設定内容に応じてリストによって動的に入力されます。これが、実際の値ではなくインデックスでオプションを参照する理由です。OptionMenu オブジェクトには、options[0]上記の方法が機能するように、現在入力されているオプションのリストを返す方法がありますか?

4

1 に答える 1

2

これを行う最も簡単な方法は、optionmenu の定義に使用されるリストのコピーを保持することです。次に、インデックスを使用してリストから値を取得し、関連付けられた変数に割り当てることができます。

例えば:

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

もう 1 つのオプションは、ウィジェットに関連付けられたメニュー オブジェクトを取得し、メニュー コマンドを使用して特定のインデックスのテキストを取得し、それを使用して変数を設定することです。

value = self.optionMenu["menu"].entrycget(0, "label")
self.menuVar.set(value)
于 2013-08-28T15:54:32.827 に答える