-
[python]tkinter/캔버스에 직선 그리기/이미지 파일을 컨버스에 생성/이미지를 레이블 위에 생성/pygame/Hello,PygameLanguages/python 2021. 5. 20. 17:25반응형
캔버스에 직선 그리기
키워드 인자 relief: 테두리 모양으로 flat, groove, raised, ridge, solid, sunken
외각 테두리 두께는 borderwidth또는 bd에 지정
함수 pack()에서 확장 여부를 expand에 지정
윈도의 크기가 변함에 따라 채워질 방향을 가로 세로 양쪽인 fill='both'로 지정
from tkinter import * win = Tk() win.title('라인 그리기') win.geometry('640x100+100+100') # 너비x높이+x좌표+y좌표 def click(event): global sX,sY print("클릭 위치", event.x,event.y) sX, sY = event.x,event.y def release(event): global eX,eY print("릴리즈 위치", event.x,event.y) eX, eY = event.x,event.y # 직선 라인 그리기 canvas.create_line(sX,sY,eX,eY, fill="blue",width=2) canvas = Canvas(win, relief='solid', bd=50) canvas.pack(expand=True, fill='both') #왼쪽 마우스 버튼 클릭 바인딩 canvas.bind("<Button-1>",click) #왼쪽 마우스 버튼 릴리즈 바인딩 canvas.bind("<ButtonRelease-1>",release) win.mainloop() ========== RESTART: C:/Users/study/파이썬 연습과제/tkinker2.py ========= 클릭 위치 456 61 릴리즈 위치 482 263 클릭 위치 253 181 릴리즈 위치 329 314 클릭 위치 239 356 릴리즈 위치 356 511 클릭 위치 82 604 릴리즈 위치 113 107 클릭 위치 297 372 릴리즈 위치 624 536 클릭 위치 231 446 릴리즈 위치 368 351
이미지 파일을 컨버스에 생성
from tkinter import * win = Tk() win.title('그림 코드') win.geometry('660x930') canvas = Canvas(win, bg='red') canvas.pack(expand=YES, fill=BOTH) #사진생성 img = PhotoImage(file="~~~~,png") #사진을 컨버스 위에 생성 canvas.create_image(10,10, anchor=NM, iamge=img) win.mainloop()
이미지를 레이블 위에 생성
from tkinter import * win = Tk() win.title('레이블 그림 코드') #사진생성 img = PhotoImage(file="~~~~,png") #사진을 담은 레이블 생성 lbimg = Label(win, image=img) lbimg.pack() win.mainloop()
pygame
pygame은 윈도 게임 파이썬 라이브러리로 원래 버전은 pyZine
설치
cmd 창에 python -m pip install pygame
import pygame # 색상 정의 WHITE = (255,255,255) # 원도 크기 정의 size = (300,200) # 윈도 초기화 pygame.init() #화면 크기 지정해 스크린 생성 screen = pygame.display.set_mode(size) 제목인 캡션 지정 pygame.display.set_caption('첫 파이게임 윈도!')
실행결과)
화면 글자에 Hello,Pygame을 넣어보자!!
import pygame WHITE = (255,255,255) BLUE = (0,0,255) pygame.init() size = [300,200] screen = pygame.display.set_mode(size) pygame.display.set_caption('hello pygame!') font = pygame.font.SysFont('Arial',20) outstr = 'hello Pygame!' done = False while not done: for event in pygame.event.get(): if event.type == pygame.quit: done = True screen.fill(WHITE) text = font.render(outstr,True,BLUE) screen.blit(text,[100,80]) pygame.display.update() pygame.quit()
실행결괴)
반응형'Languages > python' 카테고리의 다른 글