这是使用PyQT5作为UI的首次提交,将后端和UI合并到1个工程中,统一使用了Python,没有使用JS和HTML
This commit is contained in:
61
UI/launch_gui.py
Normal file
61
UI/launch_gui.py
Normal file
@@ -0,0 +1,61 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user