Leviathan UI PyQt5 프레임워크 – Windows 11 코어 스킨에서 영감을 받음

발행: (2026년 1월 15일 오전 08:53 GMT+9)
9 min read
원문: Dev.to

Source: Dev.to

👋 안녕하세요, 저는 jesusquijada34입니다

제가 Leviathan UI를 소개하고 싶습니다. 이 Python 패키지는 현대적, 모듈식 및 적응형 시각적 접근 방식을 통해 그래픽 인터페이스 생성을 용이하게 합니다.

Leviathan UI가 제공하는 것

  • Windows 11 영감을 받은 디자인 (라이트 및 다크 모드).
  • 재사용 가능한 컴포넌트 (버튼, 카드, 네비게이션 바 등).
  • 맞춤형 테마 및 자동 다크 모드 지원.
  • 모듈식 아키텍처로 모듈을 추가하거나 제거해도 애플리케이션이 깨지지 않음.
  • 사용이 쉬움: 초보자와 고급 개발자 모두에게 이상적.

사용 가능한 모드

모드설명미리보기
라이트부드러운 색상과 낮은 대비를 가진 밝은 테마.라이트 모드 미리보기
다크깊은 색조의 어두운 테마로, 조명이 약한 환경에 이상적입니다.다크 모드 미리보기
자동시스템 설정에 따라 라이트와 다크 모드를 자동으로 전환합니다.자동 모드 미리보기

애플리케이션 시작 및 종료 시 화면

시작 화면

+---------------------------------------------------+
|  ████   ████   ████   ████   ████   ████   ████   |
|  ████   ████   ████   ████   ████   ████   ████   |
|                                                   |
|  Bienvenido a Leviathan UI                        |
|  Cargando componentes...                         |
+---------------------------------------------------+

종료 화면

+---------------------------------------------------+
|  ████   ████   ████   ████   ████   ████   ████   |
|  ████   ████   ████   ████   ████   ████   ████   |
|                                                   |
|  Gracias por usar Leviathan UI!                   |
|  Guardando estado...                              |
+---------------------------------------------------+

빠른 시작 (초보자를 위한)

  1. 패키지 설치

    pip install leviathan-ui
  2. 기본 창 만들기

    from leviathan_ui import LeviathanApp, MainWindow
    
    # Instancia la aplicación con el tema deseado
    app = LeviathanApp(theme="auto")   # "light", "dark" o "auto"
    
    # Crea la ventana principal
    window = MainWindow(title="Mi primera app con Leviathan UI")
    window.resize(800, 600)
    
    # Añade un widget simple (por ejemplo, un botón)
    from leviathan_ui.widgets import Button
    btn = Button(text="¡Haz clic aquí!")
    window.setCentralWidget(btn)
    
    # Ejecuta la aplicación
    app.exec_()
  3. 스크립트 실행

    python my_app.py

기본을 넘어

  • 고급 탐색: Sidebar, TopBarBreadcrumbs를 사용하여 복잡한 인터페이스를 만듭니다.
  • 맞춤 테마: theme.json 파일을 수정하거나 Theme 클래스로 직접 테마를 생성합니다.
  • 동적 컴포넌트: 표, 차트 및 폼을 통합하고 내장된 검증 지원을 제공합니다.

📚 리소스

📦 Leviathan UI란?

Leviathan UI는 파이썬에서 그래픽 사용자 인터페이스를 만들기 위한 가벼운 패키지이며, 다음에 적합합니다:

  • 교육용, 기술용 또는 실험용 애플리케이션.
  • 무거운 프레임워크에 의존하지 않고 빠른 GUI가 필요한 프로젝트.
  • 투명도, 블러, UWP 스타일과 같은 효과를 갖춘 시각적 인터페이스.

한마디로: 파이썬 프로그램에 얼굴과 스타일을 아주 적은 코드로 부여할 수 있습니다.

⚙️ 설치

pip install leviathan-ui==1.0.0

이 명령은 PyPI에 게시된 안정 버전을 다운로드합니다.

🚀 시작하기

Leviathan‑UI의 주요 컴포넌트를 사용하여 애플리케이션을 시작하기 위한 최소 예제:

import sys
from PyQt5.QtWidgets import (
    QApplication,
    QPushButton,
    QVBoxLayout,
    QWidget,
    QLabel,
)
from PyQt5.QtCore import Qt
from lib.shared import (
    InmersiveSplash,
    InmojiTrx,
    WipeWindow,
    CustomTitleBar,
)


class MiAppPrincipal(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName("MainWindow")
        self.resize(900, 550)

        # ── Configuración de la ventana ──
        (
            WipeWindow.create()
            .set_mode("polished")          # "polished", "ghost" o "ghostBlur"
            .set_background("auto")        # Sincroniza con la paleta de Windows o usa un HEX
            .set_radius(10)                # Radio recomendado para una ventana cuadrada
            .apply(self)                   # Aplica la configuración
        )

        # ── Layout principal ──
        layout = QVBoxLayout(self)
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setSpacing(0)

        # ── Barra de título estilo Windows 11 ──
        self.title_bar = CustomTitleBar(self, title="LEVIATHAN ENGINE V2.0")
        layout.addWidget(self.title_bar)

        # ── Contenido central ──
        content = QWidget()
        content_lay = QVBoxLayout(content)
        content_lay.setAlignment(Qt.AlignCenter)

        label = QLabel("Test de Leviathan‑UI: Polished Mode")
        label.setStyleSheet(
            "color: white; font-size: 24px; font-weight: bold; font-family: 'Segoe UI';"
        )
        content_lay.addWidget(label, alignment=Qt.AlignCenter)

        self.btn = QPushButton("Cerrar app")
        self.btn.setFixedSize(280, 50)
        self.btn.setStyleSheet(
            """
            QPushButton {
                background-color: rgba(255,255,255,0.08);
                color: white;
                border: 1px solid rgba(255,255,255,0.3);
                border-radius: 12px;
                font-weight: bold;
                font-size: 14px;
            }
            QPushButton:hover {
                background-color: white;
                color: black;
            }
            """
        )
        content_lay.addWidget(self.btn, alignment=Qt.AlignCenter)
        layout.addWidget(content, 1)

        # Cerrar la aplicación al pulsar el botón
        self.btn.clicked.connect(self.close)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    # ── Emoji premium (BETA) ──
    InmojiTrx("🐉").apply(app)

    # ── Instancia de la ventana principal ──
    mi_app = MiAppPrincipal()

    # ── Splash de inicio (modo adaptive) ──
    splash = (
        InmersiveSplash(title="Iniciando...", logo="🐉", color="auto")
        .set_mode("adaptive")               # Ajusta al DPI del monitor
        .set_phrases(["Iniciando UWP"])
        .on_finish(mi_app.show)              # Muestra la ventana al terminar
        .attach_to_window(
            mi_app,
            exit_phrases=["Saliendo de la UWP"],
        )
    )

    # Inicia el splash y la aplicación
    splash.start()
    sys.exit(app.exec_())

단계 요약

  1. WipeWindow 로 창을 만들고 설정하기.
  2. CustomTitleBar 로 맞춤형 타이틀 바 추가하기.
  3. QVBoxLayout 안에 콘텐츠(라벨, 버튼 등) 삽입하기.
  4. InmojiTrx 로 프리미엄 이모지 적용하기(선택 사항).
  5. InmersiveSplash 로 스플래시 정의 및 실행하기.

이 기본 구조를 통해 Leviathan‑UI로 인터페이스를 개발할 수 있는 기능적인 기반을 갖게 됩니다.

🎨 mode 매개변수

설명
polishedUWP 스타일의 클래식 (현대 Windows).
ghost유리와 같은 투명 인터페이스.
ghostBlur블러가 적용된 액체 유리.

참고: 매개변수를 지정하지 않으면, 애플리케이션이 기본 모드로 열립니다.

🔌 스플래시 화면 — 앱 시작 및 종료

이 스플래시는 Leviathan UI로 만든 앱을 열거나 닫을 때 표시됩니다. 움직이는 용과 어두운 배경이 기술적이고 신비로운 분위기를 전달합니다.

앱을 시작하거나 종료할 때 원하는 문구를 넣을 수 있습니다.

Splash UWP

✨ Polished Mode — 클래식 UWP 스타일

  • Windows UWP 스타일.
  • 눈에 보이는 버튼, 복잡한 시각 효과 없음.
  • 전문 또는 교육 환경에 적합.

Polished Mode

👻 Ghosted Mode — 우아한 투명성

  • 인터페이스 뒤에 보이는 배경.
  • 풍경이나 맞춤 배경 위에 떠 있는 버튼.
  • 대시보드나 창의적인 앱에 이상적.

Ghosted Mode

💧 Ghosted Blur Mode — 흐릿한 액체 유리

  • 깊이 효과가 있는 흐릿한 배경.
  • 시각적으로 돋보이고 싶은 앱에 이상적.
  • Fluent Design 스타일 인터페이스에서 영감받음.

Ghosted Blur Mode

🌐 공식 링크

🎯 결론

Leviathan UI는 Python에서 그래픽 인터페이스를 실험하고자 하는 초보자에게 완벽합니다. 너무 복잡하게 할 필요 없이 몇 줄의 코드만으로도 기능적이고 매력적인 창을 가질 수 있습니다.

추천: polished부터 시작해 익숙해지고, 그 다음에 투명 모드와 블러 모드를 시험해 당신의 앱에 스타일을 입혀보세요.

프로젝트가 마음에 든다면 GitHub이나 Patreon에서 지원을 고려해 주세요. 읽어 주셔서 감사합니다!

Back to Blog

관련 글

더 보기 »