1. 300 x 300 크기의 윈도창을 만들고, 윈도창의 크기가 변경되지 않도록 하는 코드이다. 빈칸에 들어갈 내용을 보기에서 골라 넣으시오.

<aside> ➡️ resizable, geometry, mainloop

</aside>

from tkinter import *

window =Tk()
window.title("윈도창 연습")
window.[ geometry ]("400x100")
window.[ resizable ](width = FALSE, height = FALSE)

window.[ mainloop ]()

2. 버튼을 클릭하면 func1() 함수가 호출되는 코드이다. 빈칸을 채우시오.

myBtn = Button(window, text="파이썬 종료", fg = "red", [ command = func1 ])

3. 버튼 5개를 수직으로 정렬하는 코드이다. 빈칸을 채우시오.

from tkinter import *
window = Tk()

btnList = [None] * 5

[ for i in range(0, 5) ] :
	btnList[i] = Button(window, text ="버튼" + str(i + 1))

[ for btn in btnList ] :
	btn.pack(size = TOP)

window.mainLoop();

4. 윈도창에서 마우스 오른쪽 버튼을 더블클릭하면 실행되는 코드이다. 빈칸을 채우시오.

from tkinter import *

def myClick(event) :
	messsagebox.showinfo("마우스", "마우스 오른쪽 버튼이 더블클릭됨")

window = Tk()
window.[ bind("<Double-Button-3>", myClick) ]:
window.mainloop()

5. [ 프로그램 1 ] 을 수정해서 PageUp 이나 PageDown 을 눌러도 사진이 바뀌는 기능을 추가하시오. 결과 화면은 [ 프로그램 1 ] 과 동일하다.

from tkinter import *
from time import *

fnameList = ["jeju1.gif", "jeju2.gif", "jeju3.gif", "jeju4.gif", "jeju5.gif", "jeju6.gif", "jeju7.gif", "jeju8.gif", "jeju9.gif"]
photoList = [None] * 9
num = 0

def clickNext() :
    global num
    num += 1
    if num > 8 :
        num = 0
    photo = PhotoImage(file = "cookpython\\gif/" + fnameList[num])
    pLabel.configure(image = photo)
    pLabel.image = photo
    
def clickPrev() :
    global num
    num -= 1
    if num < 0 :
        num = 8
    photo = PhotoImage(file = "cookpython\\gif/" + fnameList[num])
    pLabel.configure(image = photo)
    pLabel.image=photo

def keyEvent(event) :
    global num
    if event.keycode == 33: # PageUp 버튼 아스키 코드
        num += 1
        if num > 8:
            num = 0
        photo = PhotoImage(file = "cookpython\\gif/" + fnameList[num])
        pLabel.configure(image = photo)
        pLabel.image = photo
    elif event.keycode == 34: # PageDown 버튼 아스키 코드
        num -= 1
        if num < 0:
            num = 8
        photo = PhotoImage(file = "cookpython\\gif/" + fnameList[num])
        pLabel.configure(image = photo)
        pLabel.image = photo
    
window = Tk()
window.geometry("700x500")
window.title("사진 앨범 보기")

btnPrev = Button(window, text = "<< 이전", command = clickPrev)
btnNext = Button(window, text = "다음 >>", command = clickNext)

window.bind("<Key>", keyEvent)

photo = PhotoImage(file = "cookpython\\gif/" + fnameList[0])
pLabel = Label(window, image = photo)  

btnPrev.place(x = 250, y = 10)
btnNext.place(x = 400, y = 10)
pLabel.place(x = 15, y = 50)

window.mainloop()

6. [ File ] 메뉴 아래에 [ Open ], [ Save ] 메뉴 2개를 추가하는 코드이다. 빈칸에 들어갈 내용을 보기에서 골라 넣으시오.

<aside> ➡️ add_cascade, add_command, Menu

</aside>

fileMenu = [ Menu ](mainMenu)
mainMenu.[ add_cascade ](label = "File", menu = fileMenu)
fileMenu.[ add_command ](label = "Open")
fileMenu.[ add_command ](label = "Save")