본문으로 건너뛰기

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을 사용하여 그리드 기반 레이아웃을 생성합니다. Label과 TextInput 위젯은 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의 모든 기능을 자세히 알아보고 더 많은 예시를 살펴보려면 공식 웹사이트 여기를 방문하십시오.