파이썬 GUI에서 Entry 활용 질문합니다.
조회수 750회
from tkinter import*
from tkinter.colorchooser import*
def paint():
color = askcolor()
rec = Tk()
r = Canvas(rec, width= 100, height = 100)
r.pack()
r.create_rectangle(10,10,90,90, fill = color[1])
def draw():
drawing = Tk()
c = Canvas(drawing, width = 500, height = 500, background="green")
c.pack()
c.create_polygon(e0,e1,e2,e3,e4,e5, fill="blue")
def seconde():
setting = Tk()
Label(setting, text="x1").grid(row=0)
Label(setting, text="y1").grid(row=1)
Label(setting, text="x2").grid(row=2)
Label(setting, text="y2").grid(row=3)
Label(setting, text="x3").grid(row=4)
Label(setting, text="y3").grid(row=5)
e0 = Entry(setting).grid(row=0,column=1)
e1 = Entry(setting).grid(row=1,column=1)
e2 = Entry(setting).grid(row=2,column=1)
e3 = Entry(setting).grid(row=3,column=1)
e4 = Entry(setting).grid(row=4,column=1)
e5 = Entry(setting).grid(row=5,column=1)
set1 = Button(setting, text="설정(set)", command = draw).grid(row=6,column=1)
canvers = Tk()
start = Button(canvers, text = "다각형(POLYGON)", command = seconde)
start2 = Button(canvers, text = "사각형(RecT)", command = paint)
start.pack()
start2.pack() #첫번째
canvers.mainloop()
위의 코드에서 Entry가 사용된 e들을 이용해 좌표를 설정하여 다각형을 만들고 싶은데 생각처럼 되지 않습니다.
혹시나해서 전역변수로 설정도 해봤지만 오류가 나더라고요.
어떻게 해야할까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
이렇게 하니까 되네요.
def draw(entries): drawing = Tk() c = Canvas(drawing, width = 500, height = 500, background="white") c.pack() e = [ entries[i].get() for i in range(6) ] print(e) c.create_polygon(e[0],e[1],e[2],e[3],e[4],e[5], fill="blue") def seconde(): setting = Tk() Label(setting, text="x1").grid(row=0) Label(setting, text="y1").grid(row=1) Label(setting, text="x2").grid(row=2) Label(setting, text="y2").grid(row=3) Label(setting, text="x3").grid(row=4) Label(setting, text="y3").grid(row=5) entries = [ Entry(setting) for _ in range(6) ] [ e.grid(row=i, column=1) for e, i in zip(entries, range(6)) ] print(entries) Button(setting, text="설정(set)", command = lambda : draw(entries)).grid(row=6,column=1)
댓글 입력