#!/usr/bin/env python # -*- coding: utf-8 -*- """ GUI 启动器 - 独立进程启动方式 用于从后台主程序中以独立进程方式启动 GUI 前端。 支持传递配置参数,如后端 API 地址等。 Usage: 从后台主程序启动: import subprocess subprocess.Popen(['python', 'frontend_gui/launch_gui.py', '--api-host', '127.0.0.1', '--api-port', '5050']) 或直接运行: python launch_gui.py """ import sys import argparse import os # 确保能找到当前目录的模块 current_dir = os.path.dirname(os.path.abspath(__file__)) if current_dir not in sys.path: sys.path.insert(0, current_dir) def parse_args(): """解析命令行参数""" parser = argparse.ArgumentParser(description='DTM GUI Frontend') parser.add_argument('--api-host', type=str, default='127.0.0.1', help='后端 API 主机地址 (默认: 127.0.0.1)') parser.add_argument('--api-port', type=int, default=5050, help='后端 API 端口 (默认: 5050)') parser.add_argument('--debug', action='store_true', help='启用调试模式') return parser.parse_args() def main(): """主入口函数""" args = parse_args() # 更新配置 import config config.HTTP_API_BASE_URL = f"http://{args.api_host}:{args.api_port}" config.WEBSOCKET_URL = f"ws://{args.api_host}:{args.api_port}/ws" if args.debug: print(f"[GUI 启动器] API 地址: {config.HTTP_API_BASE_URL}") print(f"[GUI 启动器] WebSocket 地址: {config.WEBSOCKET_URL}") # 启动 GUI from dtmgtUI import main as gui_main gui_main() if __name__ == '__main__': main()