Glade와 GTK+를 사용하여 Python에서 첫 번째 GUI 만들기

핵심 요약

  • 파이썬 개발자는 GTK+와 Glade를 활용하여 사용자 친화적인 시각적 인터페이스를 제작할 수 있습니다.
  • 이 예제에서 요구되는 환경 설정은 파이썬, GTK+, Glade 및 PyGObject의 설치를 포함합니다.
  • GTK+와 Glade를 파이썬 GUI 개발에 사용함으로써 개발 과정을 가속화하고 GUI 디자인을 코드로부터 분리할 수 있습니다.

파이썬은 데이터 분석 및 웹 개발 분야에서 유용성이 뛰어난 접근 가능한 언어입니다. GUI 어플리케이션 개발에도 매우 효과적입니다. GTK+와 Glade는 크로스 플랫폼 애플리케이션을 간단하게 생성하는 데 도움을 줍니다.

파이썬 개발자를 위한 GTK+와 Glade 인터페이스 디자인

GTK+(GIMP Toolkit)와 Glade Interface Designer는 파이썬 개발자가 직관적이고 만족스러운 그래픽 사용자 인터페이스를 만들 때 매우 유용한 도구 조합입니다.

GTK+는 GUI 개발에 사용되는 크로스 플랫폼 툴킷으로, 리눅스, 윈도우, macOS 등 다양한 운영체제와 호환됩니다.

Glade Interface Designer는 GTK+와 함께 사용되는 도구로서, GUI 레이아웃 코드를 작성할 필요 없이 디자인할 수 있도록 해줍니다. 사용자는 몇 번의 클릭과 드래그 앤 드롭 기능을 통해 WYSIWYG 환경에서 GUI를 만들 수 있습니다.

GTK+ 및 Glade 개발을 위한 파이썬 환경 설정

원활하고 효율적인 개발 워크플로우를 위해 환경 설정은 중요한 첫 번째 단계입니다.

1. 파이썬 설치

먼저 시스템에 파이썬이 설치되어 있는지 확인하십시오. 이 예시에서는 파이썬 3 코드를 사용하며, GTK+와 Glade에 대한 더 나은 지원과 통합을 제공합니다. 리눅스와 macOS에서는 파이썬이 일반적으로 기본적으로 설치되어 있습니다.

윈도우 사용자는 파이썬 공식 웹사이트에서 파이썬을 다운로드할 수 있습니다.

2. GTK+ 설치

패키지 관리자를 사용하여 GTK+를 설치할 수 있습니다.

우분투 및 데비안 기반 리눅스 시스템에서는 다음 명령을 사용하십시오.

sudo apt-get install libgtk-3-dev

페도라 및 유사 시스템에서는 다음 명령을 사용하십시오.

sudo dnf install gtk3-devel

macOS에서는 Homebrew를 사용하십시오.

brew install gtk+3

윈도우 사용자는 GTK 공식 다운로드 페이지에서 GTK+를 다운로드할 수 있습니다. 또는 MSYS2가 설치되어 있다면, MSYS2 명령줄에서 다음 명령을 실행하십시오.

pacman -S mingw-w64-x86_64-python-gobject

3. Glade 설치

명령줄을 사용하여 Glade를 설치할 수 있습니다.

우분투 및 데비안 기반 리눅스 배포판에서는 다음 명령을 사용하십시오.

sudo apt-get install glade

페도라에서는 다음 명령을 사용하십시오.

sudo dnf install glade

macOS 사용자는 Homebrew를 사용할 수 있습니다.

brew install glade

윈도우 사용자는 MSYS2에서 다음 명령을 사용할 수 있습니다.

pacman -S mingw-w64-x86_64-glade

4. GTK+용 파이썬 바인딩

파이썬과 GTK+를 통합하려면 PyGObject를 설치해야 합니다. 다음 명령을 사용하십시오.

pip install PyGObject

PyGObject 설치 중 “pycairo용 빌딩 휠(pyproject.toml)이 실행되지 않았습니다”와 같은 오류가 발생하면, cairo 패키지도 설치해야 합니다.

우분투 및 데비안 기반 리눅스 배포판에서는 다음 명령을 사용하십시오.

sudo apt-get install libcairo2-dev

페도라에서는 다음 명령을 사용하십시오.

sudo yum install cairo-devel

macOS에서는 다음 명령을 사용하십시오.

brew install pygobject3

5. 가상 환경 설정 (선택 사항)

파이썬 프로젝트에는 가상 환경을 사용하는 것이 좋습니다. 이는 프로젝트 종속성을 분리하는 데 도움이 됩니다. 리눅스에서 가상 환경을 생성하고 활성화하려면 다음 터미널 명령을 사용하십시오.

python -m venv myenv
source myenv/bin/activate

윈도우에서는 다음 명령을 사용하십시오.

python -m venv myenv
myenv\Scripts\activate

macOS에서 가상 환경이 Brew 설치 패키지에 접근할 수 있도록 하려면 다음 명령을 사용하십시오.

python -m venv --system-site-packages myenv
source myenv/bin/activate

6. 설치 확인

GTK+와 Glade가 제대로 설치되었는지 확인하려면, GTK를 가져오는 간단한 파이썬 스크립트를 생성하십시오.

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())

이 스크립트를 실행하면 설치된 GTK+ 버전 정보가 출력됩니다. 만약 모든 것이 제대로 작동한다면, 개발 환경이 성공적으로 설정된 것입니다.

Glade 인터페이스 디자이너와 파이썬을 사용하여 간단한 GUI 앱 만들기

Glade 인터페이스 디자이너에서 GUI 앱을 디자인하고 레이아웃을 프로젝트 파일로 내보낼 수 있습니다. 이후, 파이썬 코드에서 이 프로젝트 파일에 접근할 수 있습니다.

Glade로 GUI 디자인하기

Glade의 드래그 앤 드롭 인터페이스를 사용하면 기본적인 코드에 얽매이지 않고 쉽게 디자인에 집중할 수 있습니다. 시스템 애플리케이션 메뉴나 명령줄에서 다음 명령을 사용하여 Glade를 실행하십시오.

glade

Glade 인터페이스가 나타나 GUI 레이아웃을 생성할 수 있게 됩니다.

왼쪽 상단에 있는 새 프로젝트 만들기 버튼을 클릭하면 GUI 디자인을 위한 빈 캔버스가 제공됩니다. Glade는 상단 표시줄에 버튼, 텍스트 입력, 레이블 등 다양한 위젯을 제공합니다. 이 위젯들을 캔버스로 드래그하여 GUI 스타일링을 시작하십시오. 디자인 요구사항에 따라 위젯의 크기를 조정하고 위치를 변경할 수 있습니다.

먼저, Toplevels 메뉴에서 GtkWindow 위젯을 선택하십시오.

Glade의 오른쪽 표시줄에 있는 일반 페이지에서 ID 옵션을 찾을 수 있습니다. 이 ID는 추가된 위젯의 고유 이름입니다. 이 예시에서는 추가한 GtkWindow에 ID ‘myMainWindow’를 지정하십시오.

이제 기본 창에 위젯을 추가할 수 있습니다. 상단 표시줄에서 컨테이너로 이동하여 GtkBox 위젯을 선택한 후, 작업 영역으로 드래그하십시오. 그리고 ID를 ‘myMainBox’로 지정하십시오.

GtkBox 위젯을 추가하면, 작업 영역 오른쪽에 해당 위젯과 관련된 다양한 옵션들이 표시됩니다. 코드를 작성하지 않고도 여기에서 전체 디자인을 수정할 수 있습니다.

다음으로, 디자인에 컨트롤 위젯을 추가합니다. 상단 표시줄의 Control로 이동하여 예시로 GtkButton을 선택한 후, GtkBox 내부 아무 곳으로나 드래그하십시오. ID를 ‘myButton’으로 설정하십시오. 필요하다면, 오른쪽 패널의 일반 탭을 사용하여 버튼의 텍스트를 변경할 수 있습니다.

GtkButton은 클릭 가능한 위젯이므로, 이를 위한 파이썬 핸들러를 정의하고 나중에 코드를 작성할 수 있습니다. 오른쪽 메뉴의 신호 탭으로 이동하여 ‘clicked’ 신호에 대한 핸들러를 지정합니다. 이 예시에서는 ‘on_button_clicked’라고 명명합니다.

이제 GUI 디자인을 프로젝트 파일로 저장할 수 있습니다. 파일을 ‘myDesign.glade’로 저장합니다.

파이썬 코드에서 Glade 디자인 파일 사용

‘myDesign.glade’ 파일과 같은 디렉토리에 ‘app.py’ 파일을 만듭니다. 다음 코드를 이 파일에 붙여넣으십시오.

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk

class MyApp:
def __init__(self):

self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")

self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)

self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)

self.color_toggle = False

def on_button_clicked(self, widget):

color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle

def run(self):
self.window.show_all()
Gtk.main()

if __name__ == "__main__":
app = MyApp()
app.run()

이 코드는 버튼을 클릭할 때마다 배경색을 변경합니다. Glade에서 정의한 위젯 ID를 전달하는 ‘self.builder.get_object()’ 호출을 확인하십시오.

결과를 확인하려면 다음 명령을 사용하여 파이썬 스크립트를 실행하십시오.

python3 app.py

파이썬 GUI 개발에 GTK+와 Glade를 사용할 때의 이점

파이썬 GUI 개발에 GTK+와 Glade를 사용하면 몇 가지 분명한 이점이 있습니다. 일반적으로 GUI를 만드는 데 많은 시간과 노력이 필요하지만, Glade Interface Designer를 사용하면 이 프로세스를 가속화할 수 있습니다. Glade는 또한 예시의 버튼처럼 사용하기 쉬운 다양한 위젯들을 제공합니다.

Glade의 주요 장점 중 하나는 GUI 디자인을 코드와 분리하여 유지할 수 있다는 것입니다. 이렇게 하면 GUI 유지보수와 업데이트가 더욱 간단해집니다. 이러한 접근 방식은 최신 프로그래밍 방식을 따라 더욱 깔끔하고 잘 구조화된 코드를 생성하는 데 도움을 줍니다.