62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
import sys
|
|
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog
|
|
from asyncqt import QEventLoop
|
|
from ui.main_window import MainWindow
|
|
from ui.license_dialog import LicenseDialog
|
|
from utils.config import ConfigManager
|
|
from utils.logger import setup_logger
|
|
import logging, os
|
|
import asyncio
|
|
|
|
def main():
|
|
config = ConfigManager()
|
|
|
|
# config.ini 파일이 없을 경우 생성
|
|
if not os.path.exists('config.ini'):
|
|
config._create_default_config()
|
|
print("config.ini 파일이 생성되었습니다.")
|
|
|
|
# log_level = config.get('DEFAULT', 'log_level', fallback='DEBUG')
|
|
log_level = 'INFO'
|
|
# 로그 파일 경로 설정
|
|
log_file_path = os.path.join(os.path.dirname(__file__), 'application.log')
|
|
|
|
# 로그 설정 호출
|
|
logger = setup_logger(log_file=log_file_path, log_level=log_level)
|
|
|
|
# logger = setup_logger(log_level)
|
|
|
|
app = QApplication(sys.argv)
|
|
app.setStyle('Fusion')
|
|
# app.setStyle('windows')
|
|
loop = QEventLoop(app)
|
|
asyncio.set_event_loop(loop)
|
|
|
|
license_dialog = LicenseDialog()
|
|
if license_dialog.exec_() == QDialog.Accepted:
|
|
main_window = MainWindow(config, logger)
|
|
main_window.show()
|
|
|
|
def cleanup():
|
|
print("프로그램 종료 중...")
|
|
for task in asyncio.all_tasks(loop):
|
|
task.cancel()
|
|
loop.stop()
|
|
|
|
app.aboutToQuit.connect(cleanup)
|
|
|
|
with loop:
|
|
try:
|
|
loop.run_forever()
|
|
except KeyboardInterrupt:
|
|
pass
|
|
finally:
|
|
print("이벤트 루프 정리 중...")
|
|
loop.close()
|
|
print("이벤트 루프 종료 완료.")
|
|
else:
|
|
sys.exit(0)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|