前提・実現したいこと
tkinterにて、ボタンを押すと複数のEntryの入力値を元にcanvas上に
色違いの正方形を描きたい。(色はEntryに対応)
発生している問題・エラーメッセージ
Buttonを押すとcanvas上に正方形が入力されるが、2回目以降の入力で過去の図形
が残ったままである。
試したこと
Python
1import cv2 2import numpy as np 3import tkinter as tk 4import tkinter.filedialog as filedialog 5from functools import partial 6 7class Application(tk.Frame): 8 def __init__(self, master): 9 super().__init__(master) 10 self.place() 11 master.geometry("1000x1000") 12 master.title("open cv") 13 self.create_widgets() 14 self.canvas = tk.Canvas(self.master, width=500, height=1000) 15 self.canvas.place(x=500, y=0) 16 self.delete_rect() 17 18 def create_widgets(self): 19 self.entry_list=[] 20 button = tk.Button(self.master, text="参照") 21 button.bind("<1>", self.create_rectangle) 22 button.place(x=0, y=0) 23 24 for i in range(10): 25 entry= tk.Entry(self.master) 26 entry.insert(tk.END, 0) 27 entry.place(x=100, y=50*i) 28 self.entry_list.append(entry) 29 30 def create_rectangle(self, event): 31 32 color = ["red", "blue", "green", "yellow", "black", "gray", "magenta", "cyan", "gold", "pink"] 33 for i in range(10): 34 a = self.entry_list[i].get() 35 self.canvas.create_rectangle(0, 0, a, a, fill=color[i], tags="test") 36 37 38 39 def delete_rect(self): 40 self.canvas.delete("test") 41 42 43def main(): 44 win = tk.Tk() 45 app = Application(master=win) 46 app.mainloop() 47 48 49if __name__=="__main__": 50 main()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/22 14:59