본문 바로가기
Python

Python GUI 프로그래밍(Tkinter) – 1부

by 코딩하는 욤욤이 2024. 1. 30.
반응형

이 Python GUI 프로그래밍 포스팅에서는 Python Tkinter 툴킷을 사용하여 GUI 프로그램을 만드는 방법에 대해 배웁니다.

GUI라고도 알려진 그래픽 사용자 인터페이스는 검은색이나 기타 정적 색상으로 덮인 일반 텍스트 기반 프로그램보다 프로그램을 시각적으로 더 매력적으로 보이게 만드는 최고의 프로그래밍 기능 중 하나입니다. GUI를 사용하면 사용자 상호 작용이 훨씬 쉽고 일관됩니다.

Python GUI 프로그래밍
Python에서 GUI 프로그램을 만들려면 GUI 도구 키트를 사용해야 합니다. Python에서 널리 사용되는 툴킷 중 하나는 Tkinter입니다. Python 개발자가 사용하는 가장 안정적이고 인기 있는 GUI 도구 키트 중 하나입니다.

Tkinter 모듈 설치
Tkinter 모듈은 기본적으로 Windows 운영 체제에서 사용할 수 있습니다. 그러나 다른 운영 체제를 사용하는 경우에는 모듈을 별도로 다운로드해야 합니다.

Windows OS의 경우
https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org


 리눅스 OS의 경우

sudo apt-get install python-tk(Python 2.x의 경우)
sudo apt-get install python3-tk(Python 3.x의 경우)

 Tkinter Toolkit에 포함된 Tkinter 모듈에 미리 정의된 클래스에서 개체를 인스턴스화하여 GUI 요소를 만들 수 있습니다.

Tkinter 모듈의 GUI 요소 중 일부는 다음과 같습니다.

프레임: Label, Button, TextBox 등과 같은 다른 GUI 요소를 보유합니다.

라벨: 화면 레이아웃에 편집할 수 없는 텍스트나 아이콘을 표시합니다.

버튼: 사용자가 활성화하거나 마우스로 누르면 동작을 수행합니다.

텍스트 입력: 한 줄의 텍스트를 받아 표시합니다.

텍스트 상자: 이 GUI 요소는 여러 줄의 텍스트를 허용하고 표시합니다.

확인 버튼: 사용자가 옵션을 선택하거나 선택 취소할 수 있습니다.

라디오 버튼: 이 버튼을 사용하면 나열된 여러 옵션 중에서 하나의 옵션을 선택할 수 있습니다.

GUI 프로그램은 전통적으로 이벤트 중심입니다. 이벤트 기반이란 화면의 버튼, 아이콘 또는 기타 그래픽 개체가 발생 순서에 관계없이 작업에 응답한다는 것을 의미합니다. 이전에 텍스트 기반 프로그래밍에서 보았던 논리적 흐름이 아니라 사용자가 수행한 작업에 반응합니다.

Python GUI 프로그래밍 예제

from Tkinter import *
root= Tk()
root.title("My First GUI")
root.geometry("500x500")
root.mainloop()



산출

 

프로그램 코드의 첫 번째 줄은 현재 프로그램의 네임스페이스에 있는 Python 라이브러리에서 Tkinter 모듈을 가져옵니다.

두 번째 명령문은 Tkinter 클래스 Tk의 객체를 인스턴스화하는 데 사용되며 사용자 정의 변수 루트에 할당됩니다.

세 번째 문은 창 제목 표시줄에 표시될 제목을 설명하는 title() 메서드를 사용합니다. 문자열 인수를 받습니다.

세 번째 문은 창의 크기를 설정하는 데 사용되는 기하학() 메서드를 사용합니다. "x" 문자로 구분된 창의 너비와 높이를 나타내는 인수로 문자열(정수 아님)을 사용합니다 .

다음 명령문은 마침내 GUI 창 응용 프로그램을 시작하고 사용자가 명령을 내릴 때까지 기다립니다.

참고: Tkinter 프로그램에는 하나의 루트 창만 가질 수 있습니다. 하나의 단일 프로그램에서 여러 개의 창을 만들려고 하면 프로그램이 충돌하게 됩니다.

Python Tkinter 프레임

프레임은 라벨, 텍스트 상자 등과 같은 다른 위젯에 배치하는 데 사용되는 위젯 또는 기본 위젯입니다. 프레임이 개발되지 않으면 아무것도 할 수 없기 때문에 이것은 중요한 첫 번째 단계입니다. 기본적으로 다른 위젯을 보유하고 있습니다.

앱=프레임(루트)
여기서는 Frame 생성자에 루트를 전달했습니다. 결과적으로 새 프레임은 루트 창 내부에 배치됩니다.

app.grid()
Grid() 메소드는 모든 위젯이 가지고 있는 메소드입니다. 프레임에 위젯을 정렬할 수 있는 레이아웃 관리자와 연결되어 있습니다.

Python Tkinter 라벨
GUI 요소를 위젯이라고 합니다. 라벨은 가장 간단한 위젯 중 하나입니다. 편집할 수 없는 텍스트나 아이콘(또는 둘 다)으로 구성됩니다. 다른 위젯에 라벨을 붙이는 데 자주 사용됩니다  . 라벨은 대화형이 아닙니다. 레이블을 클릭해도 명령이 생성되지 않습니다. 그러나 라벨은 최종 사용자가 혼동하지 않도록 다른 위젯의 이름을 지정하는 데 중요합니다.


from Tkinter import *

root= Tk()
root.title("My First GUI")
root.geometry("800x200")
frame1=Frame(root)
frame1.grid()
label1 = Label(frame1, text = "Here is a label!")
label1.grid()
root.mainloop()


산출


여기서는 먼저 변수 프레임1에 할당된 프레임을 생성했습니다. 그런 다음 Frame1을 label1 객체의 생성자에 전달하여 앱이 레이블 위젯의 마스터를 참조하는 프레임을 전달했습니다. 결과적으로 라벨이 프레임에 배치됩니다.

 다음 Python GUI 프로그래밍 튜토리얼에서는 더 많은 GUI 요소 또는 위젯에 대해 논의할 것입니다.

반응형