Как я могу изменить цвет инструментов пера?

from tkinter import *
tk = Tk()

tk.title("Kaint")
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
color = input("What Color?")
size = float(input("Size?"))
def cc(event):
    color = input("What Color?")
def paint(event):
    x, y = event.x, event.y
    print('{}, {}'.format(x, y))
    x1 = event.x - size
    y1 = event.y - size
    x2 = event.x + size
    y2 = event.y + size
canvas.create_oval(x1, y1, x2, y2, fill=color, outline=color)
canvas.bind_all("<Button-3>", cc)
canvas.bind_all("<B1-Motion>", paint)
while True:
    tk.update_idletasks()
    tk.update()
mainloop()    

Как изменить цвет инструментов пера (функция рисования)? Мне нужно обновить, потому что есть функция, которая меняет цвет var на другой цвет

1 ответ

Решение

Вы можете использовать Tkinter's colorchooser чтобы предложить пользователю ввести цвет, затем установите для него цвет заливки линии. Вот пример:

from tkinter import *

def chooseColor(event):
    global color #set color to global so it updates in other function
    color = colorchooser.askcolor()

def paint(event):
    #create a line while in this event. use color[1] to get the second element in the color tuple
    canvas.create_line(event.x,event.y,event.x+1,event.y+1, fill=color[1])

tk = Tk()

canvas = Canvas(tk, width=500, height=500)
canvas.pack()

color = tkColorChooser.askcolor() #get initial color, as a tuple

canvas.bind_all("<Button-3>", chooseColor)
canvas.bind_all("<B1-Motion>", paint)

tk.mainloop()   
Другие вопросы по тегам