Python tkinter 강좌 : 제 15강 – Canvas

   

Canvas (캔버스)


1

Canvas을 이용하여 , 다각형, 등을 그리기 위한 캔버스을 생성할 수 있습니다.



Canvas 사용


import tkinter

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(False, False)

canvas=tkinter.Canvas(window, relief="solid", bd=2)

line=canvas.create_line(10, 10, 20, 20, 20, 130, 30, 140, fill="red")
polygon=canvas.create_polygon(50, 50, 170, 170, 100, 170, outline="yellow")
oval=canvas.create_oval(100, 200, 150, 250, fill="blue", width=3)
arc=canvas.create_arc(100, 100, 300, 300, start=0, extent=150, fill='red')

canvas.pack()

window.mainloop()


canvas=tkinter.Canvas(window, relief="solid", bd=2)

line=canvas.create_line(10, 10, 20, 20, 20, 130, 30, 140, fill="red")
polygon=canvas.create_polygon(50, 50, 170, 170, 100, 170, outline="yellow")
oval=canvas.create_oval(100, 200, 150, 250, fill="blue", width=3)
arc=canvas.create_arc(100, 100, 300, 300, start=0, extent=150, fill='red')

canvas.pack()

tkinter. Canvas(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...)을 사용하여 해당 윈도우 창에 표시할 캔버스의 속성을 설정할 수 있습니다.

파라미터를 사용하여 캔버스의 속성을 설정합니다.

메소드를 이용하여 캔버스에 도형을 그릴 수 있습니다.



Canvas Method###


이름의미설명
create_line(x1, y1, x2, x3, … , xn, yn, option)(x1, y1), (x2, y2), …, (xn, yn) 까지 연결되는 선 생성
create_polygon(x1, y1, x2, x3, … , xn, yn, option)다각형(x1, y1), (x2, y2), …, (xn, yn) 의 꼭지점을 같는 다각형 생성
create_oval(x1, y1, x2, y2, option)(x1, y1)에서 (x2, y2)의 크기를 가지는 원 생성
create_arc(x1, y1, x2, y2, start, extent, option)(x1, y1)에서 (x2, y2)의 크기를 가지며 start 각도부터 extent의 각을 지니는 호 생성
create_image(x, y, image, option)이미지(x, y) 위치의 image 생성


  • option

    • fill : 배경 색상

    • outline : 두께 색상

    • width : 두께

    • fill : 배경 색상

    • anchor : 위치 지정


  • Tip : 이외에도 여러 option이 존재



Entry Parameter


캔버스 형태 설정
이름의미기본값속성
width캔버스의 너비378상수
height캔버스의 높이265상수
relief캔버스의 테두리 모양flatflat, groove, raised, ridge, solid, sunken
borderwidth=bd캔버스의 테두리 두께0상수
background=bg          캔버스의 배경 색상        SystemButtonFace                  color                  
offset          캔버스의 오프셋 설정0,0                  x, y, n, e, w, s, ne, nw, se, sw



캔버스 형식 설정
이름의미기본값속성
cursor캔버스의 마우스 커서 모양-커서 속성
xscrollcommand캔버스의 가로스크롤 위젯 적용-Scrollbar위젯.set
yscrollcommand캔버스의 세로스크롤 위젯 적용-Scrollbar위젯.set
xscrollincrement캔버스 가로스크롤의 증가량0상수
yscrollincrement캔버스 가로스크롤의 증가량0상수
scrollregion캔버스 스크롤 영역 크기 설정-n, e, w, s
confine캔버스의 스크롤 영역 내 제한TrueBoolean



캔버스 하이라이트 설정
이름의미기본값속성
highlightcolor캔버스가 선택되었을 때 색상SystemWindowFramecolor
highlightbackground캔버스가 선택되지 않았을 때 색상SystemButtonFacecolor
highlightthickness캔버스가 선택되었을 때 두께 (두께 설정)0상수



캔버스 동작 설정
이름의미기본값속성
takefocusTab 키를 이용하여 위젯 이동 허용 여부TrueBoolean



참고

  • cursor 파라미터

    • arrow, based_arrow_down, based_arrow_up, boat, bogosity, bottom_left_corner, bottom_right_corner, bottom_side, bottom_tee, box_spiral, center_ptr, circle, clock, coffee_mug, cross, cross_reverse, crosshair, diamond_cross, dot, dotbox, double_arrow, draft_large, draft_small, draped_box, exchange, fleur, gobbler, gumby, hand1, hand2, heart, icon, iron_cross, left_ptr, left_side, left_tee, leftbutton, ll_angle, lr_angle, man, middlebutton, mouse, pencil, pirate, plus, question_arrow, right_ptr, right_side, right_tee, rightbutton, rtl_logo, sailboat, sb_down_arrow, sb_h_double_arrow, sb_left_arrow, sb_right_arrow, sb_up_arrow, sb_v_double_arrow, shuttle, sizing, spider, spraycan, star, target, tcross, top_left_arrow, top_left_corner, top_right_corner, top_side, top_tee, trek, ul_angle, umbrella, ur_angle, watch, wait, xterm, X_cursor

  • highlightbackground를 설정하였을 경우, 캔버스가 선택되지 않았을 때에도 두께가 표시됨


도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python tkinter 강좌 : 제 16강 – Scrollbar ⤧  Previous post Python tkinter 강좌 : 제 14강 – Message