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

주요 시사점

  • Python 개발자는 GTK+ 및 Glade를 사용하여 시각적 인터페이스를 사용하여 직관적인 GUI를 만들 수 있습니다.
  • 이 예제의 환경 설정에는 Python, GTK+, Glade 및 PyGObject 설치가 포함됩니다.
  • Python GUI 개발에 GTK+ 및 Glade를 사용하면 프로세스 속도가 빨라지고 GUI 디자인이 코드에서 분리됩니다.

Python은 데이터 분석 및 웹 개발에 완벽한 접근 가능한 언어입니다. 그러나 GUI 앱 개발에도 탁월한 선택입니다. GTK+와 Glade는 간단한 크로스 플랫폼 앱을 만드는 과정을 단순화합니다.

Python 개발자를 위한 GTK+ 및 Glade 인터페이스 디자이너

GTK+(GIMP Toolkit)와 Glade Interface Designer는 직관적이고 만족스러운 그래픽 사용자 인터페이스를 만들고자 하는 Python 개발자에게 훌륭한 조합입니다.

GTK+는 GUI 개발에 사용할 수 있는 다중 플랫폼 툴킷입니다. Linux, Windows, macOS를 포함한 다양한 운영 체제와 호환됩니다.

GTK+의 동반 도구인 Glade Interface Designer를 사용하면 레이아웃 코드를 작성하지 않고도 GUI를 디자인할 수 있습니다. 몇 번의 클릭과 간단한 드래그 앤 드롭 기능으로 WYSIWYG 환경에서 GUI를 생성하는 데 사용할 수 있습니다.

GTK+ 및 Glade 개발을 위한 Python 환경 설정

환경 설정은 원활하고 효율적인 워크플로를 보장하는 중요한 첫 번째 단계입니다.

1. 파이썬 설치

먼저 시스템에 Python이 설치되어 있는지 확인하십시오. GTK+ 및 Glade에 대한 더 나은 지원과 통합을 제공하므로 읽은 예제에서 Python 3 코드를 볼 수 있습니다. Linux 및 macOS의 경우 일반적으로 Python이 사전 설치되어 있습니다.

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

2. GTK+ 설치

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

Ubuntu 및 Debian 기반 Linux 시스템의 경우 다음을 사용합니다.

 sudo apt-get install libgtk-3-dev 

Fedora 및 유사한 경우:

 sudo dnf install gtk3-devel 

macOS에서 Homebrew 사용:

 brew install gtk+3 

Windows 사용자는 다음에서 GTK+를 다운로드할 수 있습니다. GTK 공식 다운로드 페이지. 그러나 MSYS2가 설치되어 있는 경우 MSYS2 명령줄을 열고 다음 명령을 사용할 수 있습니다.

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

3. 글레이드 설치

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

Ubuntu 및 Debian 기반 Linux 배포판의 경우:

 sudo apt-get install glade 

페도라에서:

 sudo dnf install glade 

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

 brew install glade 

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

 pacman -S mingw-w64-x86_64-glade 

4. GTK+용 Python 바인딩

GTK+를 Python과 통합하려면 PyGObject를 설치하세요. 이를 위해 사용할 명령은 다음과 같습니다.

 pip install PyGObject 

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

Ubuntu 및 Debian 기반 Linux 배포판의 경우:

 sudo apt-get install libcairo2-dev 

페도라의 경우:

 sudo yum install cairo-devel 

macOS의 경우:

 brew install pygobject3 

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

Python 프로젝트에 가상 환경을 사용하는 것이 좋습니다. 이렇게 하면 프로젝트 종속성이 격리됩니다. 다음 터미널 명령을 사용하여 Linux에서 가상 환경을 만들고 활성화합니다.

 python -m venv myenv
source myenv/bin/activate

Windows에서는 다음을 사용합니다.

 python -m venv myenv
myenv\Scripts\activate

macOS에서 가상 환경이 Brew 설치 패키지에 액세스할 수 있는지 확인하려면 다음을 사용하세요.

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

6. 설치 확인

GTK+와 Glade가 설치되었는지 확인하려면 GTK를 가져오는 간단한 Python 스크립트를 생성하세요.

 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 인터페이스 디자이너와 Python을 사용하여 간단한 GUI 앱 만들기

Glade Interface Designer에서 GUI 앱을 디자인하고 레이아웃을 프로젝트 파일로 내보낼 수 있습니다. 그런 다음 Python 코드에서 해당 프로젝트 파일에 액세스할 수 있습니다.

Glade로 GUI 디자인하기

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

 glade

GUI 레이아웃 생성을 시작할 수 있는 Glade 인터페이스가 표시되어야 합니다.

왼쪽 상단에 있는 새 프로젝트 만들기 버튼은 GUI 디자인을 위한 빈 캔버스를 제공합니다. Glade는 상단 표시줄에 버튼, 텍스트 입력 및 라벨을 포함하여 다양한 위젯을 제공합니다. 이러한 위젯을 캔버스로 드래그하여 GUI 스타일링을 시작하세요. 디자인 요구 사항에 따라 위젯의 크기를 조정하고 위치를 지정할 수 있습니다.

먼저 Toplevels 메뉴에서 GtkWindow 위젯을 선택하세요:

Glade의 오른쪽 표시줄에 있는 일반 페이지에 ID 옵션이 표시됩니다. 이 ID는 추가한 위젯의 고유 이름입니다. 이 예시에서는 추가한 GtkWindow에 ID myMainWindow를 할당하세요.

이제 생성한 기본 창에 위젯을 추가할 수 있습니다. 상단 표시줄에 있는 컨테이너로 이동하여 GtkBox 위젯을 선택한 후 작업공간으로 드래그하세요. 그런 다음 ID myMainBox를 지정합니다.

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

다음으로 디자인에 컨트롤 위젯을 추가합니다. 그렇게 하려면 상단 표시줄에 있는 Control로 이동하여 예시로 GtkButton을 선택한 다음 GtkBox의 아무 곳으로나 드래그하세요. ID를 myButton으로 지정하세요. 원하는 경우 오른쪽 패널의 일반 탭을 사용하여 버튼의 텍스트를 변경할 수도 있습니다.

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

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

Python 코드에서 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()에 대한 호출을 참고하세요.

결과를 보려면 다음 명령을 사용하여 Python 스크립트를 실행하십시오.

 python3 app.py 

Python GUI 개발에 GTK+ 및 Glade를 사용할 때의 이점

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

Glade의 주요 장점은 GUI 디자인을 코드와 별도로 유지할 수 있다는 것입니다. 이렇게 하면 GUI 유지 관리 및 업데이트가 더 간단해집니다. 이 접근 방식을 사용하면 최신 프로그래밍 방식에 따라 더 깔끔하고 잘 구성된 코드가 생성됩니다.