반응형
캔버스(Canvas)위젯

캔버스 위젯은 선, 타원, 다각형 및 직사각형과 같은 도형을 그리는 데 사용됩니다.

파이썬 캔버스(Canvas) 메서드(Method)

캔버스에 선 그리기 1

파이썬 캔버스위젯 - 선그리기

 

[ 캔버스에 선그리기1 소스 코드 ]

from tkinter import *

win=Tk()
win.title("캔버스에 선을 그려요")
win.geometry("500x250")
win.resizable(True, True)

canvas = Canvas(win, width=300, height=200, bg="light green", bd=2)
canvas.pack()

canvas.create_line(0, 10,100, 10, fill="blue")

canvas.create_line(0, 30,130, 30, fill="red")

canvas.create_line(0, 50,160, 50, fill="black")

canvas.create_line(0, 80,100, 80, fill="brown")

canvas.create_line(0, 100,100, 200, fill="brown")

canvas.create_line(100, 150,200, 00, fill="red")

win.mainloop()

 

 

♣ 캔버스에 선 그리기 2

파이썬 캔버스에 선 그리기

[ 캔버스에 선그리기2 소스 코드 ]

from tkinter import *

win=Tk()
win.title("캔버스에 선을 그려요")
win.geometry("500x250")
win.resizable(True, True)

canvas = Canvas(win, width=300, height=200, bg="light green", bd=2)
canvas.pack()

for x in range(50, 300, 30):
    canvas.create_line(x, 10,x, 200, fill="blue")


for y in range(10, 200, 30):
    canvas.create_line(0, y,300, y, fill="red")
    
win.mainloop()

 

♣ 캔버스에 선 그리기 3

윈도우 사이즈를 변경하더라도 캔버스의 크기는 변경되지 않습니다.

캔버스를 창 크기에 맞춰 크기를 조정하고 싶으면 다음과 같이 하면 됩니다.

canvas.pack(fill="both", expand=True)

파이썬 캔버스 선 그리기

[ 캔버스에 선그리기3 소스 코드 ]

from tkinter import *

win=Tk()
win.title("캔버스에 선을 그려요")
win.geometry("500x300")
win.resizable(True, True)

canvas = Canvas(win, width=300, height=200, bg="light green", bd=2)
canvas.pack(fill="both", expand=True)

for x in range(10, 500, 30):
    canvas.create_line(x, 10,x, 280, fill="blue")

win.mainloop()

 

♣ 캔버스에 선 그리기 4

- 1초에 한개씩 선을 차례대로 그려봅시다. 

- 일정 시간을 간격으로 달라지는 그림을 화면으로 표시하면 됩니다.

- 너무 빨리 그려지며 안되기 때문에 time모듈을 사용하여 1초에 선 한개씩 그립니다.

- win.update()는 화면을 다시 그립니다.

  만약 update()를 호출하지 않으면 화면을 변경하지 않으면서 좌표면 변경되기 때문에 그려지지 않습니다.

 

 

[ 캔버스에 선그리기4 소스 코드 ]

from tkinter import *
import time


win=Tk()
win.title("캔버스에 선을 그려요")
win.geometry("500x300")
win.resizable(True, True)

canvas = Canvas(win, width=300, height=200, bg="light green", bd=2)
canvas.pack(fill="both", expand=True)

for x in range(10, 500, 30):
    canvas.create_line(x, 10,x, 280, fill="blue")
    win.update()
    time.sleep(1)

win.mainloop()

 

반응형
Posted by 명문코딩컴퓨터
,