私の問題は次のとおりです:私はいくつかのファイルを持っていて、名前のドロップダウンメニューを作った、次に必要なのは、ファイル名が選択されたときに変更できるオプションメニューです私の質問は、ドロップダウンからの選択が選択されたときにオプションメニューをどのように変更するかについてのみです。どんな助けでもありがとう。ドロップダウンメニューからの選択に応じて、tkinterのオプションウィジェットをどのように動的に埋め込むことができますか?
1
A
答えて
8
OptionMenuウィジェットは、メニューに関連付けられたメニューボタンを作成する便利なクラスです。このメニューは、"menu"
属性で取得できます。唯一のやり方は、メニュー項目が何をすべきかを知ることです。これは関連する変数の値を設定することだけです。オプションメニューは、コマンドオプションを与えるように私はこの方法を既に(もしあれば)指定されたコマンドへの参照を保持し、新しいオプションにそれを渡すことを示唆している、
import Tkinter as tk
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.om_variable = tk.StringVar(self)
b1 = tk.Button(self, text="Colors", width=8, command=self.use_colors)
b2 = tk.Button(self, text="Sizes", width=8, command=self.use_sizes)
self.om = tk.OptionMenu(self, self.om_variable,())
self.om.configure(width=20)
self.use_colors()
b1.pack(side="left")
b2.pack(side="left")
self.om.pack(side="left", fill="x", expand=True)
def _reset_option_menu(self, options, index=None):
'''reset the values in the option menu
if index is given, set the value of the menu to
the option at the given index
'''
menu = self.om["menu"]
menu.delete(0, "end")
for string in options:
menu.add_command(label=string,
command=lambda value=string:
self.om_variable.set(value))
if index is not None:
self.om_variable.set(options[index])
def use_colors(self):
'''Switch the option menu to display colors'''
self._reset_option_menu(["red","orange","green","blue"], 0)
def use_sizes(self):
'''Switch the option menu to display sizes'''
self._reset_option_menu(["x-small", "small", "medium", "large"], 0)
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
-1
:ここ
は例ですattendion、前の回答に基づく変数がどの使用 の
def __init__(self, *args, **kwargs):
...
self.command=kwargs['command']
...
def _reset_option_menu(options, index=None):
...
menu.add_command(label=string,
command=lambda:self.command(),
value=self.om_variable.set(string))
...
希望のはところで、本当にブライアンOaklによって与えられた答えをUSEFULL ey、
関連する問題
- 1. グラフをtkinterに埋め込むことができません
- 2. デバイスの幅に応じて動的にカードビューを埋め込む方法
- 3. 選択フィールドに動的に生成されたオプションをどのように再埋め込みしますか?
- 4. ハスケルでは、フリーモナドを別のものにどのように埋め込むことができますか?
- 5. (WPF)どのようにしてExpander-Controltemplateにコンテンツを埋め込むことができますか?
- 6. リンカーはビルドするために埋め込む.libファイルをどのように選択するのですか?
- 7. 静的埋め込みイメージを動的に選択していますか?
- 8. どのように私は自分のサイトにOutlook Web Appを埋め込むことができますか?
- 9. Cytoscape.jsのエッジ内にどのようにラベルを埋め込むことができますか?
- 10. どのようにして、各値を反応選択で先に進めることができますか
- 11. どのようにC#でWindowsフォーム内にExcelファイルを埋め込むことができますか?
- 12. MapViewは既存のアクティビティにどのように埋め込むことができますか?
- 13. 選択ボックスにPHPを埋め込む
- 14. このスナップショットJavaScriptはどのように埋め込むことができますか?
- 15. EXIFデータをJPEGにどのように埋め込むことができますか?
- 16. どのように画像をtinymceに埋め込むことができますか?
- 17. Python 3で一連のバイトをどのように埋め込むことができますか?
- 18. どのように私はCSSでhtmlのjavascript関数を埋め込むことができますか?
- 19. JavaScript:ドロップダウンメニューの選択に応じてチェックボックスをオンにします。
- 20. どのように動的にlistview要素をアンドロイドに埋め込む
- 21. materialize.cssチップのオートコンプリートデータをどのように埋め込むことができますか?
- 22. タブビューコントローラをコンテナビューに埋め込むことはできますか?
- 23. フローティングアクションボタンをアクションバーに埋め込むことはできますか?
- 24. MongoDBをスタンドアロンアプリケーションに埋め込むことはできますか?
- 25. どのように私はJavaフォームでMicrosoft Wordを埋め込むことができますか?
- 26. jqueryを使って選択ボックスを動的に埋め込む問題
- 27. Tkinterはどのようにして始めることができますか?
- 28. ユーザーが選択したWord文書をHTMLページに埋め込むことはできますか?
- 29. 列に埋め込まれたリストと範囲をどのように扱うことができますか?
- 30. Javascript:どのようにプロパティ値の配列を動的に取り込むことができますか?
非常に良い説明と非常に有用です。おかげです。 – GiannisIordanou
だから、すでにインスタンス化されたメニューにメニュー項目を動的に追加するには、新しい項目を作成する前にメニュー項目を削除する必要がありますか? – Shule
@ user2962794:いいえ、それは私が言っていることではありません。そこにあるアイテムを削除する必要はありません。その中心にあるのは単なるメニューなので、すべてのメニューメソッドに完全にアクセスできます。新しいアイテムを挿入し、既存のアイテムを削除または変更することができます。 –