51bitquant / howtrader

Howtrader: A crypto quant framework for developing, backtesting, and executing your own trading strategies. Seamlessly integrates with TradingView and other third-party signals. Simply send a post request to automate trading and order placement. Supports Binance and Okex exchanges.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

启动main_window 报某个包内错误

qingsuijiu opened this issue · comments

报错:
Traceback (most recent call last):
File "C:\work\my_howtrade\main.py", line 80, in
main()
File "C:\work\my_howtrade\main.py", line 68, in main
main_window = MainWindow(main_engine, event_engine)
File "C:\Users\64278\anaconda3\envs\mytrader\lib\site-packages\howtrader\trader\ui\mainwindow.py", line 51, in init
self.init_ui()
File "C:\Users\64278\anaconda3\envs\mytrader\lib\site-packages\howtrader\trader\ui\mainwindow.py", line 56, in init_ui
self.init_dock()
File "C:\Users\64278\anaconda3\envs\mytrader\lib\site-packages\howtrader\trader\ui\mainwindow.py", line 63, in init_dock
self.trading_widget, trading_dock = self.create_dock(
File "C:\Users\64278\anaconda3\envs\mytrader\lib\site-packages\howtrader\trader\ui\mainwindow.py", line 234, in create_dock
dock.setFeatures(dock.DockWidgetFloatable | dock.DockWidgetMovable)
AttributeError: 'PySide6.QtWidgets.QDockWidget' object has no attribute 'DockWidgetFloatable'

具体出问题的包:from howtrader.trader.ui import MainWindow
具体出问题的源码:
def create_dock(
self,
widget_class: QtWidgets.QWidget,
name: str,
area: int
) -> Tuple[QtWidgets.QWidget, QtWidgets.QDockWidget]:
"""
Initialize a dock widget.
"""
widget: QtWidgets.QWidget = widget_class(self.main_engine, self.event_engine)

    dock: QtWidgets.QDockWidget = QtWidgets.QDockWidget(name)
    dock.setWidget(widget)
    dock.setObjectName(name)
    **dock.setFeatures(dock.DockWidgetFloatable | dock.DockWidgetMovable)**
    self.addDockWidget(area, dock)
    return widget, dock

已解决,pip install Pyside6==6.2.2,但显示的字部分是乱码,左边的图标也只有三个

字体问题:可能是相应的字体包,我的电脑没有,故对源码做出以下更改:
howtrader-3.3.0-py3.9.egg\howtrader\trader\ui\qt.py 文件
def create_qapp(app_name: str = "Howtrader") -> QtWidgets.QApplication 函数更改为:

`def create_qapp(app_name: str = "Howtrader") -> QtWidgets.QApplication:
"""
Create Qt Application.
"""
# Set up dark stylesheet
qapp: QtWidgets.QApplication = QtWidgets.QApplication(sys.argv)
qapp.setStyleSheet(qdarkstyle.load_stylesheet(qt_api="pyside6"))

# Set up font
font: QtGui.QFont = QtGui.QFont(SETTINGS["font.family"], SETTINGS["font.size"])
font.setFamily('微软雅黑')  #字体
qapp.setFont(font)

# Set up icon
icon: QtGui.QIcon = QtGui.QIcon(get_icon_path(__file__, "vnpy.ico"))
qapp.setWindowIcon(icon)
# ........`

主要是加了一句font.setFamily('微软雅黑') #将字体做一个修改

左边的图标:
好像可以在main.py中配置,有几行被注释掉了

如果发现界面出现乱码或者字体出错的话,可以在howtrader 文件夹里面的vt_setting.json文件中增加font.family的键值对

{
  "font.family": "Times New Roman"

}

或者把Times New Roman 改成你系统中的字体。