Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬
- oracle
- 자바네트워크
- python
- 리눅스
- 자바암호
- kotlin
- 코틀린
- 인프라
- 유닉스
- Spring boot
- 웹 크롤링
- chatGPT's answer
- lombok
- GPT-4's answer
- android
- NIO
- 뉴턴역학
- JVM
- 고전역학
- 시스템
- GIT
- flet
- write by chatGPT
- 자바
- write by GPT-4
- Java
- Database
- 역학
- 소프트웨어공학
Archives
- Today
- Total
Akashic Records
Flet 계산기 본문
728x90
주요 기능 및 사용 방법
- 사용자는 텍스트 필드에 계산하고 싶은 수식을 입력합니다.
- 사칙연산 버튼을 클릭하면 입력 필드에 해당 연산자가 추가됩니다.
- "계산하기" 버튼을 클릭하면 입력된 수식이 계산되어 결과가 화면 하단에 표시됩니다.
- 이 계산기는 eval 함수를 사용하여 입력된 수식을 평가하므로, 사용자가 잘못된 수식을 입력할 경우 오류 메시지가 표시됩니다.
import flet as ft
def main(page: ft.Page):
page.title="Flet 계산기"
page.theme_mode = ft.ThemeMode.LIGHT
# 결과를 표시하는 텍스트 위젯
result_text = ft.Text(value="", size=20)
# 첫번째 텍스트 필드 (사용자가 수식을 입력하는 곳)
input_field = ft.TextField(label="수식을 입력하세요", multiline=False)
# 사칙연산을 텍스트 필드에 추가하는 함수
def add_operator(e):
operator = e.control.text
input_field.value += operator
input_field.update()
# 계산하기 버튼을 클릭했을 때 동작
def calculate(e):
try:
# 입력된 수식을 안전하게 평가하기 위해 eval 사용
expression = input_field.value
result = eval(expression)
result_text.value = f"결과: {result}"
except Exception as ex:
result_text.value = f"오류: {str(ex)}"
result_text.update()
# 사칙연산 버튼 생성 및 이벤트 핸들러 연결
operators = ["+", "-", "*", "/"]
operator_buttons = [
ft.ElevatedButton(text=op, on_click=add_operator) for op in operators
]
# 계산하기 버튼 생성 및 이벤트 핸들러 연결
calculate_button = ft.ElevatedButton(text="계산하기", on_click=calculate)
# 페이지에 컴포넌트 추가
page.add(input_field)
page.add(ft.Row(operator_buttons))
page.add(calculate_button)
page.add(result_text)
ft.app(target=main)
728x90
코드 설명
필요한 모듈 임포트
import flet as ft
flet
: GUI 애플리케이션을 구축하기 위해 사용하는 Flet 라이브러리입니다.
main
함수 정의
def main(page: ft.Page):
- Flet 애플리케이션의 진입점이며, 페이지 컴포넌트(
page
)를 정의합니다.
결과를 표시하는 텍스트 위젯
result_text = ft.Text(value="", size=20)
- 계산 결과를 화면에 표시하기 위한 텍스트 위젯입니다.
- 초기값은 빈 문자열로 설정되어 있으며, 글자 크기는 20입니다.
입력 필드 생성
input_field = ft.TextField(label="수식을 입력하세요", multiline=False)
- 사용자가 수식을 입력하는 텍스트 필드입니다.
label
은 "수식을 입력하세요"이며,multiline=False
로 설정되어 있어 한 줄로 입력할 수 있습니다.
사칙연산을 추가하는 함수
def add_operator(e):
operator = e.control.text
input_field.value += operator
input_field.update()
- 사칙연산 버튼을 클릭했을 때 해당 연산자를
input_field
에 추가하는 함수입니다. operator
는 클릭된 버튼의 텍스트(e.control.text
)를 가져와 입력 필드(input_field.value
)에 덧붙입니다.- 그런 다음,
input_field.update()
를 호출하여 UI를 업데이트합니다.
계산을 수행하는 함수
def calculate(e):
try:
expression = input_field.value
result = eval(expression)
result_text.value = f"결과: {result}"
except Exception as ex:
result_text.value = f"오류: {str(ex)}"
result_text.update()
- "계산하기" 버튼을 클릭했을 때 호출되는 함수입니다.
- 사용자가 입력한 수식을
eval
함수로 평가하여 결과를 계산합니다. - 만약 계산 중 오류가 발생하면 예외 처리를 통해 오류 메시지를 출력합니다.
- 최종 결과는
result_text.value
에 할당하여 화면에 출력되며,result_text.update()
로 UI를 업데이트합니다.
사칙연산 버튼 생성
operators = ["+", "-", "*", "/"]
operator_buttons = [
ft.ElevatedButton(text=op, on_click=add_operator) for op in operators
]
- 사칙연산에 사용될 네 개의 연산자 버튼을 만듭니다.
- 각 버튼이 클릭되면
add_operator
함수가 호출됩니다.
계산하기 버튼 생성
calculate_button = ft.ElevatedButton(text="계산하기", on_click=calculate)
- 수식을 평가하여 계산 결과를 출력하기 위한 버튼입니다.
- 버튼이 클릭되면
calculate
함수가 호출됩니다.
페이지에 컴포넌트 추가
page.add(input_field)
page.add(ft.Row(operator_buttons))
page.add(calculate_button)
page.add(result_text)
- 페이지에 각 컴포넌트를 추가합니다.
- 입력 필드, 사칙연산 버튼들, "계산하기" 버튼, 그리고 결과 텍스트를 순서대로 추가합니다.
ft.Row(operator_buttons)
를 사용하여 연산자 버튼들을 한 줄에 배치합니다.
애플리케이션 실행
ft.app(target=main)
main
함수를 진입점으로 하여 Flet 애플리케이션을 실행합니다.
728x90
'Python for Beginners' 카테고리의 다른 글
Flet Mobile App Layout (3) | 2024.10.29 |
---|---|
Flet 타이머 (0) | 2024.10.28 |
Flet Button와 Event (0) | 2024.10.25 |
Flet의 기본 구조 와 개발 가이드 (0) | 2024.10.24 |
Python with Flet - 설치 (1) | 2024.10.23 |
Comments