添加dummy gateway

This commit is contained in:
2026-06-02 18:07:55 +08:00
parent 6b3b1a1f76
commit db910e03d6
5 changed files with 373 additions and 229 deletions
+44 -20
View File
@@ -5,7 +5,6 @@ from tkinter import ttk, filedialog, messagebox
import configparser
from core.main_ui import MainWindow
import config as sdConstants
from core.qmt import qmtv
class ConfigWindow:
def __init__(self, root):
@@ -119,33 +118,58 @@ def check_and_create_config():
config_window = ConfigWindow(root)
root.mainloop()
def ask_mode():
"""询问用户选择模式"""
root = tk.Tk()
root.withdraw() # 隐藏主窗口
result = messagebox.askyesno(
"选择交易模式",
"是否使用模拟交易模式?\n\n" +
"是 → 模拟交易(无需 miniQMT,可在 macOS/Linux 运行)\n" +
"否 → 真实交易(需要 Windows + miniQMT"
)
root.destroy()
return result
def initialize_system():
"""初始化系统"""
try:
while True:
# 初始化配置
if sdConstants.exist_config() and sdConstants.initConfig():
# 初始化qmtv
qmtv.init_qmtv()
connected = qmtv.connect()
if connected:
# 连接成功,启动主窗口
window = MainWindow(sdConstants.log_level)
window.run()
break
# 询问用户选择模式
if ask_mode():
# 模拟模式
from core.qmt_dummy import qmtv as selected_qmtv
print("[模拟模式] 使用模拟交易器")
sdConstants.miniQMTPath = '/dummy/path'
sdConstants.account_no = 'DUMMY_ACCOUNT'
sdConstants.log_level = 'INFO'
selected_qmtv.init_qmtv()
selected_qmtv.connect()
window = MainWindow(sdConstants.log_level)
window.run()
else:
# 真实 QMT 模式
from core.qmt_real import qmtv as selected_qmtv
while True:
if sdConstants.exist_config() and sdConstants.initConfig():
selected_qmtv.init_qmtv()
connected = selected_qmtv.connect()
if connected:
window = MainWindow(sdConstants.log_level)
window.run()
break
else:
option = messagebox.askokcancel("连接失败", "QMT连接失败,请检查")
if option:
check_and_create_config()
else:
break
else:
option = messagebox.askokcancel("连接失败", "QMT连接失败,请检查")
option = messagebox.askokcancel("错误", "请检查配置")
if option:
check_and_create_config()
else:
break
else:
option = messagebox.askokcancel("错误", "请检查配置")
if option:
check_and_create_config()
else:
break
except Exception as e:
messagebox.showerror("错误", f"系统初始化失败: {str(e)}")