80 lines
2.2 KiB
Python
80 lines
2.2 KiB
Python
import os
|
|
import threading
|
|
import traceback
|
|
import signal
|
|
import time
|
|
|
|
# 初始化设置
|
|
os.chdir(os.path.dirname(os.path.abspath(__file__))) # 切换到当前目录
|
|
import core.WebApp as WebApp
|
|
import core.PyWebPageAPI as PyWebPageAPI
|
|
import core.WebViewWIndow as WebViewWIndow
|
|
import core.DBServices as DBServices
|
|
import ProjectCfg
|
|
import core.CallServerAPIs as CallServerAPIs
|
|
|
|
def exit_handler(signum, frame):
|
|
"""处理退出信号"""
|
|
exit(0)
|
|
|
|
def find_available_port(start_port=5000, end_port=10000):
|
|
"""查找可用端口"""
|
|
for port in range(start_port, end_port):
|
|
if PyWebPageAPI.CheckPortAvailable(port):
|
|
return port
|
|
print("No available port found.")
|
|
exit(1)
|
|
|
|
def main():
|
|
"""主程序逻辑"""
|
|
signal.signal(signal.SIGINT, exit_handler)
|
|
try:
|
|
# 环境检查
|
|
if not PyWebPageAPI.EnvironmentCheck():
|
|
print("Error: Environment check failed.")
|
|
exit(1)
|
|
|
|
# Webview检查
|
|
webview_check = PyWebPageAPI.CheckWebviewInstalled()
|
|
|
|
if not webview_check[0]:
|
|
print("Warning: Webview not installed.")
|
|
print(webview_check[1])
|
|
StartPort = find_available_port()
|
|
# 启动应用
|
|
app_thread = threading.Thread(
|
|
target=WebApp.AppStart,
|
|
args=("127.0.0.1", StartPort),
|
|
daemon=True
|
|
)
|
|
app_thread.start()
|
|
|
|
# 启动数据库
|
|
dbServices_thread = threading.Thread(
|
|
target=DBServices.DBStart,
|
|
daemon=True
|
|
)
|
|
dbServices_thread.start()
|
|
# 启动Webview
|
|
try:
|
|
WebViewWIndow.WebViewWIndow(#窗口配置
|
|
f'http://127.0.0.1:{StartPort}',
|
|
ProjectCfg.WINDOW_TITLE,
|
|
ProjectCfg.WINDOW_WIDTH,
|
|
ProjectCfg.WINDOW_HEIGHT,
|
|
)
|
|
except Exception as e:
|
|
traceback.print_exc()
|
|
pass
|
|
|
|
while app_thread.is_alive():
|
|
time.sleep(0.1)
|
|
|
|
|
|
except Exception as e:
|
|
traceback.print_exc()
|
|
exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|