前提・実現したいこと
複数個のボタンを画面に配置、各ボタンにはそれぞれ同じようなクリック時の動作を与える
田中のボタンを押せば100,長谷川を押せば63が返ってくるボタンを作成したいです
実際に作成しているプログラムはソースコードのものよりも少し複雑になっているのですが、こちらに示すソースコードでも同様の問題が発生しています
発生している問題・エラーメッセージ
エラーメッセージはありません
どのボタンを押してもprintされるのは72です
該当のソースコード
python3.7
import tkinter as tk
class Application(tk.Frame):
def init(self,master=None):
super().init(master)
master.title("タイトル")
master.geometry("300x300")
self.pack()
self.create_widgets()
ボタンの配置 def create_widgets(self): self.datalist = [["田中","100"],["長谷川","63"],["横川","67"],["三宅","72"]] for self.data in self.datalist: self.button = tk.Button(self,text=self.data[0],command= lambda:self.get_data(self.data[1])) self.button.pack() ボタンクリック時の動作 def get_data(self,A): print(A)
def main():
root = tk.Tk()
app = Application(master = root)
app. mainloop()
if name == "main":
main()
試したこと
def get_data を def create_widgetsの中に入れてみましたが同じ問題が発生しました
ボタンクリック時に渡す引数Aがうまくいってないように思えますが、調べても解決方法がわかりませんでした
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/24 05:14