GUI란?
그래픽 사용자 인터페이스(graphical user interface, GUI)는 사용자가 편리하게 사용 가능한 입출력 기능을 가진 프로그램을 아이콘, 그래픽등으로 나타낸 것입니다
사용자가 화면에 있는 여러 위젯 (버튼, 텍스트 입력창, 라벨 등) 이용하여 보다 편리하게 프로그램 사용 가능
파이썬은 티킨더(tkinter)를 이용해서 GUI 프로그래밍을 할 수 있습니다.
[ Tkinter가 제공하는 주요 위젯 ]
Button | 단순한 버튼 |
Label | 텍스트 혹은 이미지 표시 |
CheckButton | 체크박스 |
Entry | 단순한 한 라인 텍스트 박스 |
ListBox | 리스트 박스 |
RadioButton | 옵션 버튼 |
Message | Label과 비슷하게 텍스트 표시. Label과 달리 자동 래핑 기능이 있다. |
Scale | 슬라이스 바 |
Scrollbar | 스크롤 바 |
Text | 멀티 라인 텍스트 박스로서 일부 Rich Text 기능 제공 |
Menu | 메뉴 Pane |
Menubutton | 메뉴 버튼 |
Toplevel | 새 윈도우를 생성할 때 사용. Tk()는 윈도우를 자동으로 생성하지만 추가로 새 윈도우 혹은 다이얼로그를 만들 경우 Toplevel를 사용한다 |
Frame | 컨테이너 위젯. 다른 위젯들을 그룹화할 때 사용 |
Canvas | 그래프와 점들로 그림을 그릴 수 있으며, 커스텀 위젯을 만드는데 사용될 수도 있다 |
파이썬은 라이브러리를 사용하기 위해서는 위에 사용할 라이브러리를 선언해야 합니다
from tkinter import * # *를 붙이는 이유는 tkinter의 모든 것을 사용한다는 뜻
window = Tk() #T는 꼭 대문자 k는 꼭 소문자여야 합니다
window.geometry('500x200') #실행창 크기를 지정합니다.
window.title("여기에다 제목을 쓰세요")
#메인 반복문 실행
window = mainloop()
★ 파이썬 GUI 배경색을 변경해 보겠습니다.
다음 코드를 추가해 보세요
# 배경색 바꾸기
window.configure(background='purple')
파이썬 레이블 위젯 - 글자 출력 |
★ 화면에 글자나 이미지를 보여주고자 할 때 레이블을 사용합니다.


[ 소스 코드 ]
from tkinter import *
window = Tk()
window.geometry('500x400')
window.title("파이썬 위젯 Label 공부하기")
label1 = Label(window, text = "파이썬 공부하기",
font=("궁서체","24"),
width=25, height=4, anchor=S,
foreground="white",
background="blue")
label1.pack()
#메인 반복문 실행
window.mainloop()
▶ anchor은 위치를 잡아주는 인수 입니다.
amchor 옵션은 사용되지 않은 공간을 기준으로 합니다.
즉, 우측에 빈공간이 생기면 이 빈공간의 중앙 상, 하, 좌 ,우에 위치합니다
S / E / N / W / SE / SW / NE / NW / CENTER
S는 아래, N은 위, E는 오른쪽 S는 왼쪽을 의미합니다.
파이썬 레이블 위젯 - 이미지 출력 |

[ 소스 코드 ]
from tkinter import *
window = Tk()
window.geometry('500x400')
window.title("파이썬 위젯 Label 공부하기");
label1 = Label(window, text= "** 귀여운 강아지 사진 **" ,font=("굴림체", "20"))
label1.pack()
img = PhotoImage(file = "dog.png")
label2 = Label(window, image = img)
label2.pack()
#메인 반복문 실행;
window.mainloop()
▶ 버튼 위젯을 추가해서 버튼을 누르면 고양이 이미지로 변경되게 해보세요
![]() |
![]() |
from tkinter import *
window = Tk()
window.geometry('600x400')
window.title("파이썬 위젯 Label 공부하기");
def change():
label1.config(text = "** 귀여운 고양이 사진으로 변경 성공 **")
label2.config(image = cat)
label1 = Label(window, text= "** 귀여운 강아지 사진 **" ,font=("굴림체", "20"))
label1.pack()
dog = PhotoImage(file = "dog.png")
cat = PhotoImage(file = "cat.png")
label2 = Label(window, image = dog)
label2.pack()
button1 = Button(window, text="클 릭", command = change)
button1.pack()
#메인 반복문 실행;
window.mainloop()
★ 다음과 같이 만들어 보세요

빨강색, 노란색, 파랑색, 보라색 버튼을 클릭하면 배경색이 변경됩니다.
출력1을 누르면 "출력1 버튼을 클릭하셨습니다 "라고출력합니다.
출력2을 클릭하면 "출력2 버튼을 클릭하셨습니다"라고 출력합니다.
from tkinter import *
#버튼1 함수
def click1():
window.configure(background='red')
#버튼2 함수
#버튼3 함수
#버튼4 함수
#버튼5 함수
#버튼6 함수
window = Tk();
window.title("파이썬 공부하기")
window.geometry('500x200')
#레이블 출력
Label1 = Label(window, text = "버튼을 클릭해서 바탕화면의 색을 바꿔보세요........")
Label1.pack()
#버튼1
Bu1 = Button(window, text="빨강색", width=7, command=click1)
Bu1.pack()
#버튼2
#버튼3
#버튼4
#버튼5
#버튼6
#메인 반복문 실행
window.mainloop()
★ 출력2 버튼을 클릭하면
#버튼6 함수
def prn2():
Label1.config(text="안녕")
'파이썬 GUI' 카테고리의 다른 글
6. 파이썬 위젯 - 라디오버튼 (0) | 2020.12.13 |
---|---|
5. 파이썬 위젯 - 텍스트 상자 (0) | 2020.12.11 |
4. 파이썬 GUI - 입력창(Entry) (0) | 2020.12.10 |
3. 파이썬 GUI - 메시지박스 (0) | 2020.12.09 |
2. 파이썬 GUI - 위젯 배치하기(grid, pack, place) (0) | 2020.12.08 |