クリックしたところに円と四角が描かれるプログラム その5です。
#coding:utf-8 import tkinter as tk def click(event): if editbox1.get() == '': pass else: set_size = int(editbox1.get()) canvas.create_oval(event.x - set_size, event.y - set_size, event.x + set_size, event.y + set_size, fill = set_color, width = 0) def click2(event): if editbox1.get() == '': pass else: set_size = int(editbox1.get()) canvas.create_rectangle(event.x - set_size, event.y - set_size, event.x + set_size, event.y + set_size, fill = set_color, width = 0) def reset(): canvas.create_rectangle(0, 0, 600, 400, fill = 'white', width = 0) def blue(): global set_color set_color = 'blue' def red(): global set_color set_color = 'red' def green(): global set_color set_color = 'green' def white(): global set_color set_color = 'white' def yellow(): global set_color set_color = 'yellow' def black(): global set_color set_color = 'black' root = tk.Tk() root.geometry('900x400') root.title('クリックすると円と四角が描かれる') button1 = tk.Button(root,text = 'リセット', font = ('Courier',14),command = reset) b_blue = tk.Button(root,text = ' 青 ', font = ('Courier',14),command = blue) b_red = tk.Button(root,text = ' 赤 ', font = ('Courier',14),command = red) b_green = tk.Button(root,text = ' 緑 ', font = ('Courier',14),command = green) b_white = tk.Button(root,text = ' 白 ', font = ('Courier',14),command = white) b_yellow = tk.Button(root,text = ' 黄 ', font = ('Courier',14),command = yellow) b_black = tk.Button(root,text = ' 黒 ', font = ('Courier',14),command = black) label1 = tk.Label(root,text = 'サイズを入力', font = ('Courier',14)) editbox1 = tk.Entry(width = 4, font = ('Courier',14)) canvas = tk.Canvas(root, width = 600, height = 400, bg = 'white') button1.place(x = 700, y = 350) b_blue.place(x = 620, y = 20) b_red.place(x = 710, y = 20) b_green.place(x = 800, y = 20) b_white.place(x = 620, y = 70) b_yellow.place(x = 710, y = 70) b_black.place(x = 800, y = 70) label1.place(x = 620, y = 120) editbox1.place(x = 650, y = 150) canvas.place(x = 0, y = 0) set_color = 'red' canvas.bind('<Button-1>', click) canvas.bind('<Button-3>', click2) root.mainloop()
メモ
・丸や四角のサイズを変更できるようにしました。
・サイズを入力していない間は、何も描かれないようにしました。