前提・実現したいこと
pythonでtkinterのComboboxでプルダウンを作成しボタンが押されたときにプルダウンから選ばれた項目をJSONデータと比較し項目で取り出しています。また、取り出した項目と合ったの詳細(Sub項目)をボタンが押されたときに外部で表示することを考えています。問題点は下記のメッセージ欄に記入しました。プログラミング初心者です。どうぞお知恵をよろしくお願いいたします。
発生している問題・エラーメッセージ
問題は、関数内ではボタンが押されて詳細項目が作成されるのですが(printで確認)、ボタンを押してもdef category():内から取り出すことが出来ません。どうぞよろしくお願いいたします。
該当のソースコード
python3.8
1 2from tkinter import * 3from tkinter.ttk import Combobox 4import json 5 6window = Tk() 7window.title("アプリ") 8 9category = ['おでん', 'いも', '焼酎'] 10food_a = StringVar() 11category_item = Combobox(values=category, textvariable=food_a) 12category_item.set(category[0]) 13category_item.grid(row=0, column=0) 14 15json_open = open("csvjson.json", "r") 16json_dict = json.load(json_open) 17 18 19def category(): 20 index_list = food_a.get() 21 food_list = [] 22 for item_category in json_dict: 23 selected_category = json_dict[item_category]["カテゴリ"] 24 if selected_category == index_list: 25 category_name = "{0}".format( 26 item_category, json_dict[item_category]) 27 food_list.append(category_name) 28 print(food_list) 29 30 31a = category() 32print(f"{a}:外部出力1") #テスト用 33 34category() 35button = Button(window, text="選択", width=10, 36 command=category) 37button.grid(row=1, column=0) 38 39window.mainloop()
試したこと
globalも試して見ましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/03 01:26
2021/03/03 01:38