나는 방금 내 Python GUI 라이브러리(PyUIkit)에 주요 업데이트를 배포했습니다

발행: (2025년 12월 13일 오후 03:49 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Overview

Python으로 데스크톱 GUI를 만드는 것은 종종 너무 저수준이거나 너무 제한적이라고 느껴졌습니다.
PyUIkit은 웹 레이아웃에서 영감을 받은 현대적인 컴포넌트 기반 GUI 라이브러리로, customtkinter 위에 구축되었습니다. 주요 특징은 다음과 같습니다:

  • 컴포넌트 (Button, Switch, Toast 등)
  • 레이아웃 컨테이너 (Div)
  • 자동 스태킹 (항상 x / y 를 지정할 필요 없음)
  • 간단하고 가독성 높은 API

최신 릴리스에서는 중요한 새로운 기능을 추가하고 API를 다듬었습니다.

New Toast Component

다음과 같은 기능을 갖춘 가볍고 비모달 피드백 요소:

  • 슬라이드‑인 및 슬라이드‑아웃 애니메이션
  • 설정 가능한 기간 후 자동 해제
  • 수동 닫기 버튼
  • 다양한 위치 (우측 상단, 좌측 하단 등)
  • 사용자 정의 색상, 크기, 텍스트
Toast(
    text="Build succeeded!",
    bg_color="#4caf50",
    duration=3
).show()

모달 동작이 없고 차단되지 않으며—웹 알림과 유사한 즉각적인 피드백을 제공합니다.

New Switch Component

설정, 환경설정, 기능 플래그 등에 적합한 토글 기반 컴포넌트.

Key features

  • 명확한 ON / OFF 상태 처리
  • 선택적 기본 상태 지정
  • 자동 스태킹 레이아웃과 완전 호환
  • 고유 id 로 전역 접근 가능
Switch(
    id="darkMode",
    text="Enable Dark Mode",
    default=True
)

앱 어디서든 스위치 상태를 가져올 수 있습니다:

state = Switch.get_state(id="darkMode")  # 1 = ON, 0 = OFF

API Consistency

모든 컴포넌트에서 API가 보다 일관된 패턴을 따르게 되었습니다:

  • 공통 속성: text, color, text_color, bg_color
  • 동적 접근을 위한 선택적 id
  • 명시적인 위치 지정이 없을 경우 Div 내부에 자동 레이아웃

이 일관성 덕분에 복잡한 UI를 구축할 때 예측 가능성이 높아집니다.

Testing & Future Ideas

이번 업데이트는 다음 상황에서 테스트되었습니다:

  • 깊게 중첩된 레이아웃
  • 자동·수동 포지셔닝 혼합
  • 콜백에서 트리거되는 다수의 인터랙티브 컴포넌트(버튼, 스위치, 토스트)

예정된 개선 사항:

  • 반응형 동작 (데스크톱 스타일 반응형, CSS 아님)
  • 향상된 애니메이션
  • 추가 컴포넌트

Installation & Documentation

  • PyPI:
  • Docs / Quickstart:

Conclusion

데스크톱 UI에 관심이 있지만 웹 같은 사용성을 선호한다면, 좋은 피드백이든 나쁜 피드백이든 환영합니다. 라이브러리는 아직 초기 단계이며 계속 발전하고 있지만, 이번 업데이트는 의미 있는 진전을 보여줍니다. 생각을 자유롭게 공유해 주세요!

Back to Blog

관련 글

더 보기 »

D-Bus는 Linux 데스크톱에 대한 치욕이다

D-Bus란 무엇인가? 모두가 D-Bus에 대해 들어봤지만, 실제로 그것이 무엇인지 궁금하다. D-Bus의 아이디어는 꽤 간단하다: 애플리케이션, 서비스 및 기타 요소들이 메소드를 노출하도록 하는 것이다.

팰린드롬 검사기

팔린드롬이란 무엇인가? 팔린드롬은 단어, 구절, 숫자 또는 기타 문자 시퀀스로, 공백, 구두점 및 대소문자를 무시하고 앞뒤가 동일하게 읽히는 것을 말한다.