(수업내용 : 그림 파일인 GIF 파일을 선택하는 코드이다. 코드로 사용 방법을 확인해 보자.from tkinter import *
from tkinter.filedialog import *
window = Tk()
window.geometry("400x100")
label1 = Label(window, text = "선택된 파일 이름")
label1.pack()
filename = askopenfilename(parent=window, filetypes = (("GIF 파일", ”*.gif”), ("모든 파일", "*.*")))
labeli.configure(text = str(filename))
window.mainloop()
tkinter.filedialog 모듈을 임포트하고, askopenfilename() 함수를 사용한다.
함수의 매개변수 중 parent는 부모 윈도우를 지정한다. 관심있게 볼 것은
filetypes인데, 값으로 튜플을 받는다.
그리고 각 튜플 안에는 다시 튜플로 ("표시할 글자”, “확장명”) 형식을 구성
한다. 첫 번째 값은 (GIF 파일”, “*.gif")이다. 그래서 실행 화면에서 오른쪽
아래를 보면 현재 GIF 파일만 표시한다. 이 부분을 클릭해서 '모든 파일’을
선택하면 모든 파일을 볼 수 있다. askopenfilename() 함수는 경로를 포함
해서 선택한 파일의 파일명을 반환한다.그리고 filename을 출력한다.
from tkinter import *
from tkinter.filedialog import *
window = Tk()
window.geometry("400x100")
label1 = Label(window, text = "선택된 파일 이름")
label1.pack()
saveFp = asksaveasfile(parent=window, mode="w", defaultextension=".jpg", filetypes=(("JPG 파일", "*.jpg;*.jpeg"), ("모든 파일", "*.*")))
label1.configure(text = saveFp)
saveFp.close()
window.mainloop()) 이번에는 파일을 저장하는 코드를 보자. 저장 대화상자는 매개변수가 약간 다르다.위의 프로그램을 실행하면 [다른 이름으로 저장] 대화상자가 열린다. 그리고 기존에 있는 파일명을 입력하고 (저장) 버튼을 누
르면 기존 파일을 바꿀 것인지 묻는 메시지창을 표시한다. 주의할 점은 askopenfilename() 함수는 파일 경로와 파일명 문자열
만 반환하지만, asksaveasfile() 함수는 다른 정보도 함께 반환한다는 것이다. 반환된 값 중에서 name과 관련된 것이 새로 저장
할 파일명이 들어 있는 부분이다. asksaveasfile() 함수의 매개변수 중 mode="w”는 쓰기 모드라는 의미이다. 그리고 defaultex
tension=".jpg"는 특별히 확장명을 지정하지 않으면 확장명을 jpg로 붙인다는 의미이다. label1에 saveFp의 내용을 text에 대입
시켜서 출력한다. 그리고 파일을 닫는다. 그리고 실행된 이후에는 파일의 기록이 완료된다.
tkinter 응용 프로그램은 대부분의 시간을 이벤트 루프에서 소모한다. 즉 mainloop()에서 이벤트를 기다리면서 반
복 루프를 실행한다. 이것을 이벤트-구동방식이라고 한다.
이벤트는 다양한 소스에서 발생할 수 있다. 키보드의 키를 눌러도 이벤트가 발생되고 마우스 버튼을 눌러도 이벤
트가 발생한다. 윈도우 매니저가 화면을 다시 그리라는 이벤트를 보낼 수도 있다. tkinter는 이벤트를 처리하는 강
력한 메카니즘을 가지고 있다. 각 위젯에 대하여 개발자는
파이썬 함수를 붙일 수 있다.
만약 위젯에서 이벤트 지정자와 일치하는 이벤트가 발생하면 주어진 이벤트 처리 함수가 이벤트를 설명하는 객
체와 함께 호출된다.간단한 예제를 보자. 마우스 이벤트를 받아서 콘솔에 출력해보자. 오늘도 좋은 강의 감사합니다. 항상 자세하게 친절한 강의 잘 듣고 있습니다. 저도 열심히 해서 강사님의 열정에 보답하겠습니다 .감사합니다. 수고많으셨습니다. 다음강의도 기대 만땅!!!!~~^^