2014-04-08 4 views
1
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 색을 다른 색으로 변경하는 함수가 있기 때문에 업데이트해야합니다.펜 도구 색상을 어떻게 변경합니까?

+0

코드에 'while true'문을 사용하면 안됩니다. 본질적으로'mainloop'이하는 일을 본질적으로 수행하기 때문에 완전히 불필요하지만 덜 효율적입니다. –

답변

3

Tkinter의 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() 
관련 문제