5

コードにウィジェットを追加し、OptionMenuオプションとしてリストを割り当てました。これがその方法です:

z = StringVar()   
z.set(userList[0])    
usersOption = OptionMenu(frame1, z, *userList)#, command=changeUser)
usersOption.pack(side=RIGHT, padx=3)

今、私はそれが上記のリストのすべてのオプションを表示すると思います。そのとおり:

Option 1 \/ <-- the box with the selected option
Option 1 }\__the options that show on click
Option 2 }/

しかし、実際には2番目のオプションしか表示されず、それを選択すると、基本的に戻る方法はありません。ボックスをもう一度クリックすると、オプション2のみが表示されたままになり、上下キーを使用しても変更できません。解決策を探してみましたが、どこにも見つからなかったので、ウィジェットのデフォルトの操作方法だと思い始めていますが、読んだドキュメントで解決方法を示すものは何も見つかりませんでした。
PS: Python 3.3 を使用しています

4

3 に答える 3

7

私は同じ問題を抱えていて、それが私を怒らせていたので、ソースを調べました。問題は、3番目のコンストラクター引数がデフォルト値であることだと思います。*userList の前に指定しないと、最初の項目がデフォルト値になるように見えます。実際の修正は次のようになります。

z = StringVar()   
z.set(userList[0])    
usersOption = OptionMenu(frame1, z, userList[0] ,*userList)#, command=changeUser)
usersOption.pack(side=RIGHT, padx=3)
于 2013-10-22T22:06:47.890 に答える