IT/SW Dev.

쉬운 AI Coding - Python UI 개발툴(Tkinter, pyQt, kivy)

부티형 2025. 2. 19. 21:13
반응형

출처 : 부티형

 

 

파이썬에서 UI(User Interface) 개발을 할 때 많이 사용되며 비교적 쉽게 배울 수 있는 도구 3개를 추천해 드릴게요.


1. Tkinter (기본 GUI 라이브러리)

장점

  • 파이썬 표준 라이브러리로 별도 설치가 필요 없음.
  • 비교적 가벼우며 간단한 GUI 개발에 적합.
  • 기본적인 버튼, 레이블, 텍스트 입력 등 다양한 위젯 제공.
  • 크로스 플랫폼(Windows, macOS, Linux) 지원.

단점

  • 디자인이 기본적이고 세련되지 않음.
  • 복잡한 UI 개발에는 한계가 있음.

사용 예제

import tkinter as tk

root = tk.Tk()
root.title("Tkinter 예제")

label = tk.Label(root, text="Hello, Tkinter!")
label.pack()

button = tk.Button(root, text="닫기", command=root.quit)
button.pack()

root.mainloop()

2. PyQt (PyQt5 / PyQt6) (강력한 UI 개발)

장점

반응형
  • Qt 프레임워크 기반으로 강력한 UI 기능 제공.
  • 드래그 앤 드롭 방식의 Qt Designer를 사용하여 UI 디자인 가능.
  • 다양한 위젯과 스타일 커스터마이징 가능.
  • 크로스 플랫폼 지원.

단점

  • 라이선스 문제(PyQt는 상업적 사용 시 라이선스 필요).
  • 다른 UI 프레임워크보다 학습 곡선이 높음.
  • 패키지 크기가 커서 간단한 프로젝트에는 부담될 수 있음.

설치 및 사용 예제

설치:

pip install PyQt6

간단한 예제:

from PyQt6.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget
import sys

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle("PyQt 예제")

layout = QVBoxLayout()
layout.addWidget(QLabel("Hello, PyQt!"))
button = QPushButton("닫기")
button.clicked.connect(app.quit)
layout.addWidget(button)

window.setLayout(layout)
window.show()
sys.exit(app.exec())

3. Kivy (터치스크린 및 크로스 플랫폼 지원)

장점

  • 모바일 앱(Android, iOS) 및 데스크톱 앱을 동시에 개발 가능.
  • 멀티터치 지원 → 스마트폰 UI 개발에 적합.
  • GPU 가속 렌더링을 지원하여 빠른 성능 제공.
  • 크로스 플랫폼 지원(Windows, macOS, Linux, Android, iOS).

단점

  • 디자인이 기본적으로 모바일 중심이라 데스크톱 UI 개발에는 다소 불편할 수 있음.
  • 설치 및 환경 설정이 조금 번거로움.
  • 기존의 데스크톱 UI 스타일과 다소 차이가 있음.

설치 및 사용 예제

설치:

pip install kivy

간단한 예제:

from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
    def build(self):
        return Button(text="Hello, Kivy!")

MyApp().run()

비교 및 선택 기준

UI 프레임워크 사용 난이도  디자인  크로스 플랫폼  모바일 지원  주요 용도
Tkinter 쉬움 기본적 O X 간단한 데스크톱 앱
PyQt 중간 세련됨 O X 강력한 데스크톱 앱
Kivy 중간 모바일 지향 O O 크로스 플랫폼 및 모바일 앱

추천

  • 간단한 GUI 프로그램 → Tkinter
  • 강력한 데스크톱 애플리케이션 → PyQt
  • 모바일 앱까지 개발하려면 → Kivy

어떤 용도로 사용할지에 따라 선택하면 됩니다!

반응형