74 lines
2.1 KiB
Python
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) |