- 서론 -
대학교 시험이 끝나고 친구들이랑 술 마시다가 오랜만에 마인크래프트 하자는 이야기가 나와서ㅋㅋㅋ 셋이 마인크래프트 하려고 기다리다가 친구1은 서버 열고 있고, 친구2는 여자친구랑 집 들어가고 있다고 해서 기다리다가 갑자기 파이썬 프로그램이 만들어보고 싶어서 그냥 재미로 만들어 본 프로그램임.
- 프레임 -
- 코드 몇 줄로 빠르게 만들 수 있는 파이썬 기반 프로그램이 만들고 싶음
- 귀여운 푸바오 사진이 있으니 푸바오 관련 된 프로그램이어야함
- (창 하나 + 버튼 + 버튼을 누르면 나오는 푸바오 사진) 이런 느낌의 프로그램을 만들고 싶음
- 코드 -
# 프로그램 구현에 필요한 tkinter모듈과 PIL모듈에서 이미지 처리에 필요한 클래스를 불러옴
from tkinter import *
from PIL import Image, ImageTk
# 버튼의 기능을 구현하는 함수
def clickbtn():
image = Image.open("pooobao.jpg") # "pooobao.jpg" 파일을 열고 해당 이미지를 읽어옴
image.thumbnail((400, 400)) # 이미지를 원하는 크기로 조정
photo = ImageTk.PhotoImage(image) # `ImageTk.PhotoImage`를 이용하여 이미지를 Tkinter에서 사용 가능한 이미지 형식으로 변환
# 이미지를 표시하기 위한 라벨 위젯 생성
label = Label(tk, image=photo)
label.photo = photo # 라벨 객체에 이미지를 연결하고 이미지를 라벨에 유지하도록 함
label.pack() #라벨을 윈도우에 배치하여 이미지를 화면에 표시함
tk = Tk() # GUI창 생성
tk.geometry("400x400") # 창 크기 설정
tk.title("Poobao") # 창 제목 설정
btn = Button(tk, text='버튼을 누르면 푸바오가 반겨줍니다!!', command=clickbtn) #버튼 생성, 버튼 누를 때 실행 할 함수 지정
btn.pack(expand=1, anchor=CENTER) #버튼을 윈도우에 배치하고 위치를 설정
tk.mainloop() # Tkinter 애플리케이션을 시작하고 이벤트 루프를 실행
"tkinter" 를 사용하여 프로그램 GUI창을 구현했고 `def clickbtn`에 버튼 기능에 대한 내용을 함수로 저장해두었다.
그리고 어떤 이유에서인지 일반적인 이미지 파일을 불러오는 방식이 작동이 되지 않아. PIL모듈에서 이미지를 처리하는 클래스를 가져와서 이미지를 Tkinter에서 사용 가능한 이미지 형식으로 변환 후, 라벨에 이미지를 연결해서 라벨을 윈도우에 배치하는 방식으로 이미지를 화면에 표시하게끔 구현했다.
- 실행 -
성공이다
'개발?인듯 개발아닌 > Python' 카테고리의 다른 글
BeautifulSoup4와 requests를 사용한 웹 파싱 (0) | 2024.06.23 |
---|---|
python을 이용한 간단한 Web 만들기 전 알아보는 Flask (0) | 2024.01.11 |