파이썬 tkinter 버튼 - paisseon tkinter beoteun

참고사이트: 유튜브 나도코딩

code - 버튼 기능

2. 버튼기능.txt

0.00MB

img.png

0.00MB

code 설명

import tkinter as tk

root = tk.Tk()  # tkinter root창 생성

root.title("계산기") #창 이름

#################################################
'''
창 크기, 가로 x 세로 + 창 출력 위치 좌표
'''
root.geometry("300x500+200+200")

#################################################
'''
기본 버튼 기능 
'''
button1 = tk.Button(root, text="버튼1")
button1.pack()

#################################################
'''
버튼 안에 글자를 먼저 넣은 후에 옆,수직방향으로 공간 확보 
padx : 옆방향으로 공간 확보, pady: 수직방향으로 공간 확보
'''
button2 = tk.Button(root,padx=5, pady=10, text="버튼2")
button2.pack()

#################################################
'''
버튼2번과 비교하면 가로,세로 공간 다름
'''
button3 = tk.Button(root,padx=10, pady=5, text="버튼3")
button3.pack()

#################################################
'''
버튼 안에 글자를 먼저 넣은 후에 가로, 세로 방향으로 공간 확보 
버튼에 넣을 내용이 길어지면 버튼길이도 자동으로 길어진다
padx : 가로 공간 확보, pady: 세로 공간 확보
'''
button4 = tk.Button(root,padx=5, pady=10, text="버튼444444444444444")
button4.pack()


#################################################
'''
width 가로 길이 고정, height 세로 길이 고정
padx,pady와는 다르게 버튼네모 크기를 고정시키는 기능
'''
# width: 창의 x축 값 고정, height: 창의 y축 값 고정
button5 = tk.Button(root, width=10, height=3, text="버튼5")
button5.pack()

#################################################
'''
width 가로 길이 고정, height 세로 길이 고정
padx, pady 기능과는 다르게 text 내용이 길어지면 짤린다
'''
button6 = tk.Button(root,width=10, height=5, text="버튼6666666666666666666")
button6.pack()

#################################################
'''
fg : 글자 색상
bg : 배경색
'''
button7 = tk.Button(root,fg="red", bg="yellow", text="버튼7")
button7.pack()

#################################################
'''
버튼에 사진 넣는 기능
'''
photo=tk.PhotoImage(file="img.png")
button8 = tk.Button(root,image=photo)
button8.pack()

#################################################
'''
버튼클릭시 어떤 행위를 하도록 함
'''
def button_action():
    print("버튼 클릭 완료")

button9 = tk.Button(root, text="실제로 동작 버튼", command=button_action)
button9.pack()

root.mainloop() #mainloop 선언해야 root창이 종료되지 않고 계속 실행됨

결과 화면

파이썬 tkinter 버튼 - paisseon tkinter beoteun

모두코딩( https://cafe.naver.com/moducoding )에서 제공하는 IT 프로그램 과정입니다. 이번 주제는 "파이썬 GUI 프로그램 - tkinter를 이용한 버튼 생성하고 이벤트 발생하기!!" 입니다. 파이썬 GUI 프로그램의 대표적인 라이브러리 tkinter를 활용하는 과정이며, 이후에는 pygame을 이용한 게임 프로그램까지 적용하는 시리즈 강의입니다.

아래 유튜브 강의를 먼저 보시고 아래 정리한 글을 보시면 더욱 학습 효과가 있습니다.

우선 아래는 버튼과 라벨을 윈도우 창에 추가하는 소스 코드입니다. tkinter.Label() 함수를 이용해 x좌표 100, y좌표 100 위치에 추가합니다. 같은 방식으로 tkinter.Button() 함수를 이용하여 x좌표 100, y 좌표 150에 추가를 합니다.

import tkinter win = tkinter.Tk() win.title("파이썬 GUI 프로그램 버튼") win.geometry("400x300") #라벨을 붙이기 label = tkinter.Label(win, text="성공했다면 클릭하세요", font=("System", 20)) label.place(x=100, y=100) #버튼을 붙이기 button = tkinter.Button(win, text="클릭하세요.", font=("System", 20)) button.place(x=100, y=150) win.mainloop()

버튼을 클릭했을 때 정해진 액션에 따라 반응이 보여야 합니다. 이 사례에서는 버튼을 클릭했을 때 버튼의 글씨가 바뀌게 하는 것입니다. 소스코드 위쪽에 def click_button() 사용자 함수를 추가합니다. button["text"] 같이 지정하면 해당 속성이 변경할 수 있습니다.

그리고 tkinter.Button() 함수에 정의했던 곳에 command 속성을 사용합니다. command 는 해당 객체가 변화가 있을 때 다른 명령어를 수행할 수 있습니다. 위에서 정의했던 click_button 함수를 실행하게 합니다.

import tkinter def click_button(): button["text"] = "클릭했습니다." win = tkinter.Tk() win.title("파이썬 GUI 프로그램 버튼") win.geometry("400x300") #라벨을 붙이기 label = tkinter.Label(win, text="성공했다면 클릭하세요", font=("System", 20)) label.place(x=100, y=100) #버튼을 붙이기 button = tkinter.Button(win, text="클릭하세요.", font=("System", 20), command=click_button) button.place(x=100, y=150) win.mainloop()

자. 그럼 소스코드를 모두 작성한 후에 동작하도록 하겠습니다. 아래와 같이 [클릭하세요] 버튼을 클릭하면 함수가 실행되면 버튼의 글씨가 변하게 됩니다.

파이썬 tkinter 버튼 - paisseon tkinter beoteun

파이썬 tkinter 버튼 - paisseon tkinter beoteun

어렵지 않죠? 함수를 추가하는 것과 command 속성에 정의하는 것만 이해하면 됩니다. 다른 객체들에게 적용하는 것도 같은 방법으로 진행이 될겁니다.

해당 강의들은 아래 "모두코딩" 카페 커뮤니티에서 활동을 하고 있습니다. 가입하시고 좋은 정보 많이 받아가시고 많은 활동 해주시면 더욱 감사합니다.^^!!