Leviathan UI PyQt5 프레임워크 – Windows 11 코어 스킨에서 영감을 받음
Source: Dev.to
👋 안녕하세요, 저는 jesusquijada34입니다
제가 Leviathan UI를 소개하고 싶습니다. 이 Python 패키지는 현대적, 모듈식 및 적응형 시각적 접근 방식을 통해 그래픽 인터페이스 생성을 용이하게 합니다.
Leviathan UI가 제공하는 것
- Windows 11 영감을 받은 디자인 (라이트 및 다크 모드).
- 재사용 가능한 컴포넌트 (버튼, 카드, 네비게이션 바 등).
- 맞춤형 테마 및 자동 다크 모드 지원.
- 모듈식 아키텍처로 모듈을 추가하거나 제거해도 애플리케이션이 깨지지 않음.
- 사용이 쉬움: 초보자와 고급 개발자 모두에게 이상적.
사용 가능한 모드
| 모드 | 설명 | 미리보기 |
|---|---|---|
| 라이트 | 부드러운 색상과 낮은 대비를 가진 밝은 테마. | ![]() |
| 다크 | 깊은 색조의 어두운 테마로, 조명이 약한 환경에 이상적입니다. | ![]() |
| 자동 | 시스템 설정에 따라 라이트와 다크 모드를 자동으로 전환합니다. | ![]() |
애플리케이션 시작 및 종료 시 화면
시작 화면
+---------------------------------------------------+
| ████ ████ ████ ████ ████ ████ ████ |
| ████ ████ ████ ████ ████ ████ ████ |
| |
| Bienvenido a Leviathan UI |
| Cargando componentes... |
+---------------------------------------------------+
종료 화면
+---------------------------------------------------+
| ████ ████ ████ ████ ████ ████ ████ |
| ████ ████ ████ ████ ████ ████ ████ |
| |
| Gracias por usar Leviathan UI! |
| Guardando estado... |
+---------------------------------------------------+
빠른 시작 (초보자를 위한)
-
패키지 설치
pip install leviathan-ui -
기본 창 만들기
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_() -
스크립트 실행
python my_app.py
기본을 넘어
- 고급 탐색:
Sidebar,TopBar와Breadcrumbs를 사용하여 복잡한 인터페이스를 만듭니다. - 맞춤 테마:
theme.json파일을 수정하거나Theme클래스로 직접 테마를 생성합니다. - 동적 컴포넌트: 표, 차트 및 폼을 통합하고 내장된 검증 지원을 제공합니다.
📚 리소스
- 전체 문서: https://leviathan-ui.readthedocs.io
- GitHub 저장소: https://github.com/jesusquijada34/leviathan-ui
- 예제 및 튜토리얼: https://github.com/jesusquijada34/leviathan-ui/tree/main/examples
📦 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_())
단계 요약
- WipeWindow 로 창을 만들고 설정하기.
CustomTitleBar로 맞춤형 타이틀 바 추가하기.QVBoxLayout안에 콘텐츠(라벨, 버튼 등) 삽입하기.InmojiTrx로 프리미엄 이모지 적용하기(선택 사항).InmersiveSplash로 스플래시 정의 및 실행하기.
이 기본 구조를 통해 Leviathan‑UI로 인터페이스를 개발할 수 있는 기능적인 기반을 갖게 됩니다.
🎨 mode 매개변수
| 값 | 설명 |
|---|---|
polished | UWP 스타일의 클래식 (현대 Windows). |
ghost | 유리와 같은 투명 인터페이스. |
ghostBlur | 블러가 적용된 액체 유리. |
참고: 매개변수를 지정하지 않으면, 애플리케이션이 기본 모드로 열립니다.
🔌 스플래시 화면 — 앱 시작 및 종료
이 스플래시는 Leviathan UI로 만든 앱을 열거나 닫을 때 표시됩니다. 움직이는 용과 어두운 배경이 기술적이고 신비로운 분위기를 전달합니다.
앱을 시작하거나 종료할 때 원하는 문구를 넣을 수 있습니다.
✨ Polished Mode — 클래식 UWP 스타일
- Windows UWP 스타일.
- 눈에 보이는 버튼, 복잡한 시각 효과 없음.
- 전문 또는 교육 환경에 적합.
👻 Ghosted Mode — 우아한 투명성
- 인터페이스 뒤에 보이는 배경.
- 풍경이나 맞춤 배경 위에 떠 있는 버튼.
- 대시보드나 창의적인 앱에 이상적.
💧 Ghosted Blur Mode — 흐릿한 액체 유리
- 깊이 효과가 있는 흐릿한 배경.
- 시각적으로 돋보이고 싶은 앱에 이상적.
- Fluent Design 스타일 인터페이스에서 영감받음.
🌐 공식 링크
- PyPI:
leviathan-uiv1.0.0 – Leviathan UI 공식 저장소 - GitHub: JesusQuijada34
- Website: Flarm Store
- Telegram: Jesus Quijada | Influent Projects
- Patreon: JesusQuijada34
🎯 결론
Leviathan UI는 Python에서 그래픽 인터페이스를 실험하고자 하는 초보자에게 완벽합니다. 너무 복잡하게 할 필요 없이 몇 줄의 코드만으로도 기능적이고 매력적인 창을 가질 수 있습니다.
추천:
polished부터 시작해 익숙해지고, 그 다음에 투명 모드와 블러 모드를 시험해 당신의 앱에 스타일을 입혀보세요.
프로젝트가 마음에 든다면 GitHub이나 Patreon에서 지원을 고려해 주세요. 읽어 주셔서 감사합니다!






