[Python] Tkinter의 Canvas 사용

2020년 08월 27일 by 진아사랑해

    [Python] Tkinter의 Canvas 사용 목차
반응형

1. Canvas의 생성

    import Tkinter as tk

    master= tk.TK()

    canv = tk.Canvas(masterwidth=180height=180bg='white')

    canv.pack(side='bottom')

180 x 180 크기의 캔버스를 master 창 아래편에 만든다

백그라운드 칼라(배경색)은 하얀색이다

2. Canvas에 이미지 출력

     import Tkinter as tk

    master= tk.TK()

    Canvas1 = tk.Canvas(width = 1500height = 950)

    Canvas1.config(bg="blue")

    Canvas1.pack()

    img = ImageTk.PhotoImage("photo.png")

    Canvas1.create_image(1500/2,950/2,image = .img)

    -create_image( )에서 첫번째, 두번쨰는 x-, y- 좌표이며, 캔버스 width와 height의 1/2을 사용하여

     캔버스에서 이미지의 출력 좌표를 정해준다

3. 화면 전환

   아래의 프로그램은 캔버스에서 1초 단위로 화면이 전환되게 한다

        self.my_images = []

        self.my_images.append(tk.PhotoImage(file = "images/10_image.png"))

        self.my_images.append(tk.PhotoImage(file = "images/11_image.png"))

        self.my_images.append(tk.PhotoImage(file = "images/12_image.png"))

        self.my_image_number = 0

 

        # set first image on canvas

        self.image_on_canvas = self.Canvas1.create_image(00anchor = "nw"image = self.my_images[self.my_image_number])

        self.after(1000self.change_img)

 

    def change_img(self):

        # next image

        self.my_image_number += 1

        # return to first image

        if self.my_image_number == len(self.my_images):

            self.my_image_number = 0

        # change image

        self.Canvas1.itemconfig(self.image_on_canvas, image = self.my_images[self.my_image_number])

        self.after(1000self.change_img)

4. 캔버스 삭제

   self.Canvas1.delete("all")

   화면 삭제가 필요한 경우 Frame 위에 canvas가 생성되어 있다면 캔버스를 먼저 삭제한 후에 Frame을 destory하여야 한다.

 

반응형