[목표]버튼 클릭을 통해 레이블 변경하기
레이블은 문자 또는 그림을 표시할 뿐 다른 기능이 없다.
하지만, 함수를 통해 버튼 클릭 시 레이블에 표시된 문자나 그림을 변경할 수 있다.
다음은 앞 서 배운 레이블을 표시하는 코드와 그 실행 결과다.
from tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") label1 = Label(root, text="Hello World") label1.pack() root.mainloop() |
1. 버튼 만들기
위 코드에 버튼을 추가해 보자
아래 왼쪽 코드처럼 음영 표시된 두 줄을 추가하면 오른쪽처럼 버튼이 만들어진다.
#버튼 만들기 rom tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") label1 = Label(root, text="Hello World") label1.pack() btn = Button(root, text="클릭하세요", command=change) btn.pack() root.mainloop() |
[코드 설명 ] 버튼 만들기
추가된 두 줄의 코드 중 Button()함수의 command=change 에 주목하자
command 속성은 버튼이 클릭됐을 때 실행할 동작을 지정한다.
이 속성에는 보통 실행할 함수 이름을 지정한다.
그 이름을 change로 정했다. 다만, 아직 change의 동작은 구체적으로 기록해 주는 단계가 남아있다.
이를 함수 정의라 하는데, 함수 정의는 다음 단계에서 진행하자.
2. 버튼 클릭시 동작하는 함수 만들기(정의하기)
버튼을 클릭하면 레이블에 쓰인 'Hello World'라는 문자열이 '안녕하세요'로 바뀌도록 함수를 만들어 보자.
아래 왼쪽 코드에 음영 표시된 두 줄의 코드를 추가한 뒤 코드를 실행하자.
그리고, 버튼을 클릭하면 오른쪽 그림처럼 레이블의 문자열이 '안녕하세요'로 바뀐 것을 확인할 수 있다.
#버튼 함수 정의하기 from tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") label1 = Label(root, text="Hello World") label1.pack() def change(): label1.config(text="안녕하세요.") btn = Button(root, text="클릭하세요", command=change) btn.pack() root.mainloop() |
|
[코드 설명 ] 버튼 함수 정의하기
추가된 두 줄의 코드 중
첫 줄 def change(): 는 'change 함수를 정의하겠다'는 의미다.
둘째 줄 abel1.config(text="안녕하세요.")는
레이블인 label1의 속성(config) 중 text속성을 안녕하세요로 설정하겠다는 의미다.
'코딩 > 파이썬 활용 프로젝트' 카테고리의 다른 글
파이썬 GUI_6_리스트 박스 항목 추가 (0) | 2022.12.07 |
---|---|
파이썬 GUI_5_엔트리_버튼 클릭 시 입력 문자열 가져오기 (2) | 2022.12.07 |
파이썬 GUI_3_레이블 만들기 (0) | 2022.12.07 |
파이썬 GUI_2_버튼 만들기 (0) | 2022.12.07 |
파이썬 GUI_1_창 띄우기 (0) | 2022.12.07 |
댓글