오늘 소개드릴 내용은 TKinter라는 Python GUI 프로그래밍 라이브러리에 있는 이미지 기능이에요 !
기본 기능을 배워가면서 UI를 만들다보면 라벨은 글자 버튼은 네모 엔트리 네모 텍스트창도 네모.... 너무 단조로운데요
이미지를 넣을 수 있으면 배경도 사진으로 예쁘게 꾸미고 아이콘도 귀여운걸로 해볼 수 있겠죠 ! .!
그럼 아주 아주 간단한 예제로 실행해 보도록 하겠습니다.
import tkinter
from tkinter import *
root = tkinter.Tk()
img=tkinter.PhotoImage(file="C:/Users/Roha/Downloads/cat.gif")
lbl = Label(root, text="Reboot")
lbl.pack()
txt = Entry(root)
txt.pack()
btn = Button(root, image=img)
btn.pack()
root.geometry('500x400+400+500')
root.mainloop()
이렇게 PhotoImage 라는 기능을 이용하면 이미지를
라벨이나 버튼에 넣어줄 수 있답니다.
애옹이가 인사를 하고 있네요
애옹이 이미지는 버튼에 적용해 놓았기 때문에 버튼을 누르면 어떠한 기능이 작동하도록 할 수 있어요 !. !
저는 새로운 애옹이 창이 뜨도록 해봤어요
import tkinter
from tkinter import *
root = Tk()
def aws():
aw = Tk()
lbl = Label(aw, text="Reboot")
lbl.pack()
txt = Entry(aw)
txt.pack()
btn = Button(aw,image=img)
btn.pack()
aw.geometry('500x400+400+300')
aw.mainloop()
img=tkinter.PhotoImage(file="C:/Users/Roha/Downloads/cat.gif")
lbl = Label(root, text="Reboot")
lbl.pack()
txt = Entry(root)
txt.pack()
btn = Button(root, image=img, command =aws)
btn.pack()
root.geometry('500x400+400+500')
root.mainloop()
완전히 같은 구성으로 다른 위치에 새창을 띄우도록 작성한 코드에요. 정상적으로 작동한다면 새창에서 애옹이가 안녕 인사해야 할텐데요
이런 오류가 발생 되는것 볼 수 있습니다.
image "pyimage1" doesn't exist
그냥 인터넷으로 튜토리얼 찾아보면서 하신 분들은 여기서 엄청 고뇌에 빠지실 수 있어요.
(걍 다른 라이브러리로 갈아탈까 하면서 ...)
이미지가 전역변수로 되있어서 그런걸까하고
지역 변수로 이미지를 정의해도 같은 에러가 나타날 겁니다.
TKinter는 메인 창이 아닌 새창을 띄우면 이미지 적용할 때 반드시 master 정의를 해줘야 해요 ! .! 이 이미지는 어떤 창에 적용할 이미지이다 하고 미리 정해 주는 거죠
import tkinter
from tkinter import *
root = Tk()
def aws():
aw = Tk()
lbl = Label(aw, text="Reboot")
lbl.pack()
txt = Entry(aw)
txt.pack()
img=tkinter.PhotoImage(file="C:/Users/Roha/Downloads/cat.gif", master=aw)
btn = Button(aw,image=img1)
btn.pack()
aw.geometry('500x400+400+300')
aw.mainloop()
img=tkinter.PhotoImage(file="C:/Users/Roha/Downloads/cat.gif")
lbl = Label(root, text="Reboot")
lbl.pack()
txt = Entry(root)
txt.pack()
btn = Button(root, image=img, command =aws)
btn.pack()
root.geometry('500x400+400+500')
root.mainloop()
img=tkinter.PhotoImage(file="C:/Users/Roha/Downloads/cat.gif", master=aw)
이렇게 변수에 master=창이름 추가해주면
새창에서도 이미지가 정상적으로 나타난 답니다.
결과를 볼게요 !
애옹이를 클릭하니 애옹이창이 하나 더 나타났습니다.
이런 문제 있으셨던 분이 있었다면 도움이 되셨길 바랍니다.
그럼 모두들 즐코딩 ! .! 하세욤
#python #tkinter #PhotoImage #button #애옹 #새창만들기
#pyimage #doesntexist #에러메세지 #command
#Entry #pack #geometry #mainloop
#파이썬GUI #프로그래밍 #master
'파이썬 팁' 카테고리의 다른 글
파이썬으로 MAC address 추출하는 배치파일 만드는 방법 - uuid (0) | 2020.09.26 |
---|---|
파이썬 통해 불러온 데이터로 그래프 그리기 - matplotlib, 그래프크기조절, subplot 등 예제설명 (0) | 2020.09.26 |
파이썬 GUI 표준라이브러리 TKinter 재시작 버튼 만들기 (0) | 2020.09.26 |
파이썬 함수안의 변수를 함수 밖에서 호출하는 방법은 ? - 전역 변수 Global (0) | 2020.09.26 |
파이썬 코드로 뉴욕 날씨 검색하기 - BeautifulSoup & 구글colab 소개 (0) | 2020.09.25 |