自定义了一个用户UI界面,用来显示行情,仓位信息,主要代码如下:
信号定义
signal_position: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
signal_price: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
signal_strategy_data: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
signal_log: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
信号注册
def register_event(self):
"""
Register event handler into event engine.
"""
# 持仓响应
self.signal_position.connect(self.postion_process_event)
self.event_engine.register(EVENT_POSITION, self.signal_position.emit)
# 价格响应
self.signal_price.connect(self.price_process_event)
self.event_engine.register(EVENT_TICK, self.signal_price.emit)
# 策略数据响应
self.signal_strategy_data.connect(self.strategy_data_process_event)
self.event_engine.register(EVENT_CTA_STRATEGY, self.signal_strategy_data.emit)
# 注册日志数据反显响应函数
self.signal_log.connect(self.log_process_event)
self.event_engine.register(EVENT_LOG, self.signal_log.emit)
运行一段时间后会提示如下错误:
Traceback (most recent call last):
File "C:\vnstudio\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\vnstudio\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\vnstudio\lib\site-packages\vnpy\event\engine.py", line 60, in _run
self._process(event)
File "C:\vnstudio\lib\site-packages\vnpy\event\engine.py", line 74, in _process
[handler(event) for handler in self._handlers[event.type]]
File "C:\vnstudio\lib\site-packages\vnpy\event\engine.py", line 74, in <listcomp>
[handler(event) for handler in self._handlers[event.type]]
AttributeError: 'main_window' does not have a signal with the signature signal_position(PyQt_PyObject)
不知道是什么原因