codeSearch/app.py

74 lines
2.1 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.window_width = 1000
page.window_height = 800
page.window_min_width = 800
page.window_min_height = 600
page.padding = 10
page.bgcolor = ft.colors.WHITE
page.scroll = ft.ScrollMode.AUTO
# 데이터베이스 관리자 초기화
db_manager = DatabaseManager(db_path="fault_codes.db")
# UI 컴포넌트 초기화
fault_finder_ui = FaultFinderUI(page, db_manager)
# 앱 타이틀
app_title = ft.Container(
content=ft.Row([
ft.Icon(ft.icons.SEARCH, color=ft.colors.BLUE, size=32),
ft.Text("철도차량 고장코드 검색 시스템", size=24, weight=ft.FontWeight.BOLD),
], alignment=ft.MainAxisAlignment.CENTER),
margin=ft.margin.only(bottom=10),
padding=10,
bgcolor=ft.colors.BLUE_50,
border_radius=10,
)
# 메인 컨텐츠 영역
main_content = ft.Container(
content=fault_finder_ui.container,
expand=True,
bgcolor=ft.colors.WHITE,
border_radius=10,
border=ft.border.all(1, ft.colors.BLUE_200),
padding=10,
)
# 푸터
footer = ft.Container(
content=ft.Row([
ft.Text("© 2023 철도차량 정비 시스템", size=12, color=ft.colors.GREY_700),
ft.Text("버전 1.0", size=12, color=ft.colors.GREY_700),
], alignment=ft.MainAxisAlignment.SPACE_BETWEEN),
margin=ft.margin.only(top=10),
padding=10,
bgcolor=ft.colors.BLUE_50,
border_radius=10,
)
# 레이아웃 구성
page.add(
app_title,
main_content,
footer,
)
# 초기 데이터 로드
fault_finder_ui.load_all_codes()
if __name__ == "__main__":
ft.app(target=main)