質問: tkinter.Button(text='Exec', command=func3) d.pack() root.mainloop() print("value=",value) # データが格納されたことを確認 print("value2=",value2) # データが格納されたことを確認 ```
回答: こんばんは。 問題文読ませていただきました。 こんな感じでいかがでしょうか? ``` import tkinter import tkinter.filedialog import tkinter.messagebox # 直線(折線)コンテンツを作成する関数 def func(): # 前回描画したデータを消去するために保存するための変数 global id edit1 = EditBox1.get() edit2 = EditBox2.get() # 数字が入力されていない場合、初期値として0を格納する。 # 参考 : https://note.nkmk.me/python-str-num-determine/ value = edit1 if edit1.isdigit() else 0 value2 = edit2 if edit2.isdigit() else 0 # 前回描画したデータが存在する場合、データ削除を行う。 # 参考 : https://www.it-swarm-ja.com/ja/python/tkinter-canvas%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F/1072525611/ if not id is None: canvas.delete(id) # 直線(折線)コンテンツを作成 # x1座標 : value, y1座標 : value2, x2座標 : 10, y2座標 : 20, x3座標 : 60, y3座標 : 100, x4座標 : 40, y4座標 : 30 # option : fill(線を引くときの色を設定) redとする。 # 戻り値 : ID id = canvas.create_line(value, value2, 10, 20, 60, 100, 40, 30, fill='red') # Windowを描画する。 root = tkinter.Tk() # Windowのtitleをつける。 root.title("テストプログラム") # Windowの画面サイズを設定する。 # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/ root.geometry("600x600") # Windowを親要素として、canvas Widgetを作成する。 # width : 幅設定 # height : 高さ設定 # Canvasについて : https://kuroro.blog/python/ANyM9WLpd0LSXRQAELOj/ canvas = tkinter.Canvas(root, width=400, height=300) # Windowを親要素として、canvas Widgetをどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ canvas.place(x=0, y=200) # create_rectangle : 矩形を描画する。 # x1座標 : 0, y1座標 : 0, x2座標 : 200, y2座標 : 200 # option : fill(矩形の背景色を設定) # 戻り値 : ID canvas.create_rectangle(0, 0, 200, 200, fill='green') # データ数の入力 # Windowを親要素として、label Widgetを作成する。 # text : テキスト情報 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ Static1 = tkinter.Label(root, text='データ数') # Windowを親要素として、label Widgetをどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ Static1.place(x=5, y=5) # Windowを親要素として、entry Widgetを作成する。 # width : 幅の設定 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ EditBox1 = tkinter.Entry(width=5) # Windowを親要素として、entry Widgetをどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ EditBox1.place(x=100, y=5) # データ数の入力 # Windowを親要素として、label Widgetを作成する。 # text : テキスト情報 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ Static2 = tkinter.Label(root, text='データ数') # Windowを親要素として、label Widgetをどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ Static2.place(x=5, y=30) # Windowを親要素として、entry Widgetを作成する。 # width : 幅の設定 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ EditBox2 = tkinter.Entry(root, width=5) # Windowを親要素として、entry Widgetをどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ EditBox2.place(x=100, y=30) # Windowを親要素として、button Widgetを作成する。 # text : テキスト情報 # command : ボタンをクリックした時に実行する関数を設定。funcとする。 # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ d = tkinter.Button(root, text='Exec', command=func) # Windowを親要素として、button Widgetを作成する。 # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ d.pack() # Windowをループさせて、継続的にWindow表示させる。 # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/ root.mainloop() ``` ご確認のほど、よろしくお願いいたします。🙇♂️