본문으로 건너뛰기

NiceGUI 개요.

NiceGUI는 응용 프로그램을 위한 상호 작용 및 시각적으로 매력적인 인터페이스를 쉽게 만들 수 있는 강력한 그래픽 사용자 인터페이스(GUI) 라이브러리입니다. 이 튜토리얼에서는 NiceGUI의 소개, 역사, 기능 및 예제를 살펴보겠습니다.

소개

NiceGUI는 사용자 인터페이스 생성 과정을 단순화하기 위해 개발된 크로스 플랫폼 GUI 라이브러리입니다. 사용자 친화적으로 설계되었으며 초보자와 숙련된 개발자 모두에게 적합한 다양한 기능을 제공합니다.

역사

NiceGUI는 2010년에 현대적인 외관과 사용하기 쉬운 GUI 라이브러리를 만들고자 한 개발자 팀에 의해 처음으로 출시되었습니다. 이후로 여러 해 동안 간단함과 다양성으로 인해 개발자들 사이에서 인기를 얻으며 발전해 왔습니다.

기능

NiceGUI는 GUI 응용 프로그램을 만들기 위한 강력한 도구로 다양한 기능을 제공합니다. 몇 가지 주요 기능을 살펴보겠습니다:

1. 크로스 플랫폼 호환성

NiceGUI는 Windows, macOS, Linux와 같은 다른 운영 체제에서 실행될 수 있도록 크로스 플랫폼으로 구축되었습니다. 이를 통해 개발자는 여러 플랫폼에서 원활하게 작동하는 응용 프로그램을 만들 수 있습니다.

2. 사용자 정의 가능한 테마

NiceGUI는 다양한 사용자 정의 가능한 테마를 제공하여 응용 프로그램의 브랜딩이나 디자인 요구 사항과 일치하는 시각적으로 매력적인 인터페이스를 만들 수 있습니다. 이러한 테마는 전체 응용 프로그램 또는 특정 컴포넌트에 쉽게 적용할 수 있습니다.

다음은 NiceGUI 버튼에 테마를 적용하는 예시입니다:

import nicegui as ng

ng.theme('dark') # 'dark' 테마 적용

button = ng.Button(text='클릭하세요')
button.show()

이 예시에서는 theme 함수를 사용하여 전체 응용 프로그램에 'dark' 테마를 적용합니다. 그런 다음 지정된 텍스트로 Button 위젯을 생성하고 화면에 표시합니다.

3. 레이아웃 관리

NiceGUI는 유연한 레이아웃 관리 옵션을 제공하여 개발자가 인터페이스 내에서 컴포넌트를 쉽게 정렬하고 배치할 수 있습니다. 그리드 레이아웃, 박스 레이아웃, 절대 위치 지정과 같은 다양한 레이아웃 관리자를 지원합니다.

다음은 그리드 레이아웃 관리자를 사용하여 간단한 폼을 생성하는 예시입니다:

import nicegui as ng

form = ng.GridLayout()

label1 = ng.Label(text='이름:')
input1 = ng.TextInput()

label2 = ng.Label(text='이메일:')
input2 = ng.TextInput()

form.add(label1, 0, 0)
form.add(input1, 0, 1)
form.add(label2, 1, 0)
form.add(input2, 1, 1)

form.show()

이 예시에서는 GridLayout을 사용하여 그리드 기반 레이아웃을 생성합니다. LabelTextInput 위젯은 add 메서드를 사용하여 그리드 내에서의 위치를 지정하여 폼에 추가됩니다.

4. 이벤트 처리

NiceGUI는 사용자 상호작용 및 이벤트 처리를 간편하게 처리할 수 있는 방법을 제공합니다. 개발자는 버튼 클릭 또는 텍스트 입력 변경과 같은 특정 이벤트에 함수를 손쉽게 바인딩하여 사용자 입력에 대한 동작을 수행할 수 있습니다.

다음은 버튼 클릭 이벤트를 처리하는 예시입니다:

import nicegui as ng

def button_click():
ng.alert('버튼이 클릭되었습니다!')

button = ng.Button(text='클릭하세요')
button.on_click(button_click)
button.show()

이 예시에서 on_click 메서드를 사용하여 button_click 함수를 버튼의 클릭 이벤트에 바인딩합니다. 버튼이 클릭되면 button_click 함수가 호출되어 경고 메시지가 표시됩니다.

5. 다양한 위젯 제공

NiceGUI는 사용자 인터페이스에 쉽게 추가할 수 있는 다양한 미리 제작된 위젯을 제공합니다. 버튼, 라벨, 텍스트 입력, 체크박스, 드롭다운 메뉴 등이 포함되어 있으며, 이러한 위젯을 활용하여 매우 상호 작용적이고 직관적인 인터페이스를 만들 수 있습니다.

다음은 NiceGUI 위젯을 사용하는 예시입니다:

import nicegui as ng

button = ng.Button(text='클릭하세요')

label = ng.Label(text='안녕하세요, NiceGUI!')

checkbox = ng.Checkbox(text='체크하세요')

dropdown = ng.Dropdown(options=['옵션 1', '옵션 2', '옵션 3'])

button.show()
label.show()
checkbox.show()
dropdown.show()

이 예시에서는 각각의 NiceGUI 위젯을 사용하여 버튼, 라벨, 체크박스, 드롭다운 메뉴를 생성합니다. 각 위젯은 화면에 표시됩니다.

예시

NiceGUI의 기능을 더 자세히 알아보기 위해 몇 가지 예시를 살펴보겠습니다.

예시 1: 간단한 계산기 만들기

import nicegui as ng

def calculate():
num1 = int(input1.value)
num2 = int(input2.value)
result = num1 + num2
output.value = str(result)

input1 = ng.TextInput()
input2 = ng.TextInput()
output = ng.TextInput(readonly=True)
button = ng.Button(text='계산하기', on_click=calculate)

ng.Row(input1, '+', input2, '=', output, button).show()

이 예시에서는 사용자가 입력 필드에 두 숫자를 입력하고 "계산하기" 버튼을 클릭하면 결과가 출력 필드에 표시됩니다.

예시 2: 할 일 목록 만들기

import nicegui as ng

todos = []

def add_todo():
todo = input.value
todos.append(todo)
refresh_list()

def refresh_list():
listbox.options = todos

input = ng.TextInput()
button = ng.Button(text='할 일 추가', on_click=add_todo)
listbox = ng.ListBox(options=todos)

ng.Row(input, button).show()
listbox.show()

이 예시에서는 사용자가 입력 필드에 항목을 입력하고 "할 일 추가" 버튼을 클릭하여 할 일 목록에 항목을 추가할 수 있습니다. 할 일 목록은 listbox 위젯에 표시됩니다.

NiceGUI의 모든 기능을 자세히 알아보고 더 많은 예시를 살펴보려면 공식 웹사이트 여기를 방문하십시오.