54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
# encoding: UTF-8
|
|
|
|
'''
|
|
行情记录模块相关的GUI控制组件
|
|
'''
|
|
|
|
from vnpy.event import Event
|
|
from vnpy.trader.uiQt import QtWidgets, QtCore
|
|
from .jsEngine import EVENT_JS_LOG
|
|
|
|
|
|
|
|
########################################################################
|
|
class JsEngineManager(QtWidgets.QWidget):
|
|
"""Jaqs服务管理组件"""
|
|
signal = QtCore.Signal(type(Event()))
|
|
|
|
#----------------------------------------------------------------------
|
|
def __init__(self, jsEngine, eventEngine, parent=None):
|
|
"""Constructor"""
|
|
super(JsEngineManager, self).__init__(parent)
|
|
|
|
self.jsEngine = jsEngine
|
|
self.eventEngine = eventEngine
|
|
|
|
self.initUi()
|
|
self.registerEvent()
|
|
|
|
#----------------------------------------------------------------------
|
|
def initUi(self):
|
|
"""初始化界面"""
|
|
self.setWindowTitle(u'Jaqs服务')
|
|
# 日志监控
|
|
self.logMonitor = QtWidgets.QTextEdit()
|
|
self.logMonitor.setReadOnly(True)
|
|
self.logMonitor.setMinimumHeight(600)
|
|
|
|
# 设置布局
|
|
vbox = QtWidgets.QVBoxLayout()
|
|
vbox.addWidget(self.logMonitor)
|
|
self.setLayout(vbox)
|
|
|
|
#----------------------------------------------------------------------
|
|
def updateLog(self, event):
|
|
"""更新日志"""
|
|
log = event.dict_['data']
|
|
content = '\t'.join([log.logTime, log.logContent])
|
|
self.logMonitor.append(content)
|
|
|
|
#----------------------------------------------------------------------
|
|
def registerEvent(self):
|
|
"""注册事件监听"""
|
|
self.signal.connect(self.updateLog)
|
|
self.eventEngine.register(EVENT_JS_LOG, self.signal.emit) |