51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import flet as ft
|
|
from database.db_manager import DatabaseManager
|
|
from ui.fault_finder import FaultFinderUI
|
|
|
|
def main(page: ft.Page):
|
|
"""
|
|
메인 애플리케이션을 초기화하고 실행합니다.
|
|
|
|
Args:
|
|
page (ft.Page): Flet 페이지 객체
|
|
"""
|
|
# 페이지 설정
|
|
page.title = "고장코드 검색기"
|
|
page.theme_mode = ft.ThemeMode.LIGHT
|
|
page.padding = 10 # 모바일 화면에 맞게 패딩 감소
|
|
|
|
# 모바일 환경 최적화
|
|
page.window_width = 1000 # 기본 너비
|
|
page.window_height = 800 # 기본 높이
|
|
page.window_resizable = True
|
|
|
|
# 모바일 설정
|
|
page.scroll = ft.ScrollMode.AUTO # 필요시 스크롤 허용
|
|
page.on_resize = lambda _: page.update() # 화면 크기 변경 시 업데이트
|
|
|
|
# 안드로이드 뒤로가기 버튼 처리
|
|
def on_back_button(e):
|
|
# 다이얼로그가 열려있으면 닫기
|
|
if page.dialog and page.dialog.open:
|
|
page.dialog.open = False
|
|
page.update()
|
|
return True # 이벤트 처리 완료
|
|
return False # 기본 뒤로가기 동작 허용
|
|
|
|
page.on_pop_route = on_back_button
|
|
|
|
# 데이터베이스 매니저 초기화
|
|
db_manager = DatabaseManager()
|
|
|
|
# UI 컴포넌트 초기화
|
|
fault_finder = FaultFinderUI(page, db_manager)
|
|
|
|
# 메인 컨테이너를 페이지에 추가
|
|
page.add(fault_finder.container)
|
|
|
|
# 초기 로딩 시 전체 코드 목록 표시
|
|
fault_finder.load_all_codes()
|
|
page.update() # UI 업데이트 강제 호출
|
|
|
|
if __name__ == "__main__":
|
|
ft.app(target=main) |