강의노트 Button
강의노트
• 조회수 415
• 댓글 0
• 수정 2개월 전
- 윈도우 프로그램
버튼
버튼을 만들고 사용하는 방법을 예제들을 이용하여 알아본다.
예1
버튼을 위의 그림과 같이 생성한다.
from tkinter import *
def fun_quit(): #1
win.destroy()
win = Tk() #2
win.geometry('200x200') #3
but = Button(win, text='파이썬 종료', fg = 'red', command=fun_quit) #4
but.pack() #5
win.mainloop()
- 버튼에서 사용하는 명령을 함수로 만든다.
- 창을 만든다.
- 생성한 창의 크기는 '200x200'으로 한다.
- 버튼을 생성하고 텍스트는 '파이썬 종료'라고 쓰고 글자는 빨간색으로 명령어는 win.destroy(), 즉 생성된 창을 지운다.
- 생성한 버튼을 창에 붙인다.
예2
이미지를 읽어서 버튼에 넣는다. 그리고 버튼을 누르면 아래와 같은 새로운 메세지 창이 뜬다.
from tkinter import *
from tkinter import messagebox
from PIL import ImageTk, Image
def fun():
messagebox.showinfo('이미지 테스트','ㅎㅎㅎ')
win = Tk()
photo = Image.open('./../data/images/tiger.bmp') #1
im = ImageTk.PhotoImage(photo) #2
but = Button(win, image = im, command= fun) #3
but.pack()
win.mainloop()
- 이미지를 읽어 온다.
- 이미지를 포토 이미지로 만든다.
- 이미지를 버튼에 넣고(image=im) 명령은 fun함수(메세지 박스를 보여준다)
예3
두 개의 그림(클로버 1과 클로버 2)를 버튼을 누를때마다 바뀌는 프로그램을 만든다.
import tkinter as tk
count = 1
win = tk.Tk()
win.geometry("400x300") # Size of the window
bg = 'blue' # change the day colour
win.configure(background=bg) # default background of window
im1 = tk.PhotoImage(file = "./../data/images/clova_1.png")
im2 = tk.PhotoImage(file = "./../data/images/clova_2.png")
def f_change():
global count
if(count % 2 == 0 ):
b1.config(image=im1)
else:
b1.config(image=im2)
count = count + 1
b1=tk.Button(win,image=im1,relief='flat',bg=bg,command=lambda:f_change())
b1.grid(row=1,column=1,padx=20,pady=10)
win.mainloop() # Keep the window open
열 1 | 열 2 |
---|---|
예4
하나의 버튼에 여려개의 그림을 그리는 방법
import tkinter as tk
import random
count = 0
img = []
win = tk.Tk()
win.title('Card Select')
win.geometry("400x300")
bg = 'blue'
win.configure(background=bg)
for i in range(1,14):
s = f"./../data/images/clova_{i}.png"
im = tk.PhotoImage(file = s)
img.append(im)
def f_change():
im = random.choice(img)
b1.config(image=im)
b1=tk.Button(win,image=img[0],relief='flat',bg=bg,command=lambda:f_change())
b1.grid(row=1,column=1,padx=20,pady=10)
win.mainloop()
열 1 | 열 2 | 열 3 |
---|---|---|
버튼의 command 함수에 변수를 추가해서 넘기려면 lambda함수를 사용해야 한다.
로그인 하면 댓글을 쓸 수 있습니다.