vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 298
声望: 73

我的vn.py登录后,社区论坛界面没有办法缩放,看起来非常不舒服,求指教!

description

Member
avatar
加入于:
帖子: 3164
声望: 185

一般都可以缩放的,请问再试还是这样吗?

Administrator
avatar
加入于:
帖子: 5108
声望: 296

确实无法缩放,在VN Station中集成的Chrominum是比较轻量级的浏览器功能,没有提供Chrome的很多快捷操作

Member
avatar
加入于:
帖子: 298
声望: 73

1 可是我还有另外一台电脑,同样也是win10系统,再试就可以放大了(Ctrl+鼠标滚轮),请看截屏界面:

description

2 估计还是其中一台的PyQt5包没有更新

2.1 MainWindow类中的init_ui()

vnstation\ui\main\mainwindow.py中的MainWindow类中的init_ui()代码是这样的:

    def init_ui(self):
        """"""
        self.setWindowTitle(f'VN Station {vnstation.__version__}')
        self.resize(QtCore.QSize(1050, 800))

        url = 'https://www.vnpy.com/portal'
        self.browser = create_web_view()
        self.browser.setUrl(QtCore.QUrl(url))

        self.text_edit = QtWidgets.QTextEdit()
        self.text_edit.setReadOnly(True)
        self.signal_stdout.connect(self.text_edit.append)

        button_height = 60

        lite_button = QtWidgets.QPushButton('VN Trader Lite')
        lite_button.clicked.connect(self.open_lite_clicked)
        lite_button.setFixedHeight(button_height)
        lite_button.setToolTip("加载了CTP接口和CTA策略模块的期货量化平台")

        trader_button = QtWidgets.QPushButton('VN Trader Pro')
        trader_button.clicked.connect(self.open_pro_clicked)
        trader_button.setFixedHeight(button_height)
        trader_button.setToolTip("根据需求灵活配置的机构级量化交易平台")

        jupyter_button = QtWidgets.QPushButton('Jupyter Notebook')
        jupyter_button.clicked.connect(self.open_jupyter_clicked)
        jupyter_button.setFixedHeight(button_height)
        jupyter_button.setToolTip("在Jupyter的交互式环境中进行量化研究")

        encrypt_button = QtWidgets.QPushButton('策略加密')
        encrypt_button.clicked.connect(self.encrypt_clicked)
        encrypt_button.setFixedHeight(button_height)
        encrypt_button.setToolTip("将Python源代码加密生成pyd二进制文件")

        community_button = QtWidgets.QPushButton(u'提问求助')
        community_button.clicked.connect(self.open_community_clicked)
        community_button.setFixedHeight(button_height)
        community_button.setToolTip("使用中的疑问请通过vn.py社区论坛求助")

        update_button = QtWidgets.QPushButton("已是最新")
        update_button.clicked.connect(self.update_clicked)
        update_button.setFixedHeight(button_height)
        update_button.setEnabled(False)
        self.update_button = update_button

        # hbox_top = QtWidgets.QHBoxLayout()
        # hbox_top.addWidget(self.browser)
        # hbox_top.addWidget(self.text_edit)

        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(lite_button)
        hbox.addWidget(trader_button)
        hbox.addWidget(jupyter_button)
        hbox.addWidget(encrypt_button)
        hbox.addWidget(community_button)
        hbox.addWidget(update_button)

        vbox = QtWidgets.QVBoxLayout()
        vbox.addWidget(self.browser)
        vbox.addLayout(hbox)

        widget = QtWidgets.QWidget()
        widget.setLayout(vbox)
        self.setCentralWidget(widget)

        self.tray_icon = None

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.trigger_useronline)
        self.timer.start(1000 * 60 * 25)

其中的self.browser = create_web_view()

2.2 create_web_view()位于vnstation\web_engine.py文件中

def create_web_view(parent=None):
    view = QWebEngineView(parent=parent)
    view.setPage(QWebEnginePage(_web_engine_profile, view))
    return view

而QWebEngineView和QWebEnginePage来自PyQt5.QtWebEngineWidgets:

from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineProfile, QWebEngineView

2.3 推断:可能是PyQt5的包没有更新导致界面不可以缩放

2.3.1 更新PyQt5包

因为可以肯定的是新安装的vnpy,在进入论坛界面是可以缩放的,执行下面的指令:

pip install --upgrade PyQt5

2.3.2 简单粗暴的办法

卸载vn.py,然后重新安装,当前为vn.py2.1.6,就OK了!
当然这种方法有点笨了些!不过相比前一种方法,时间上可能还短很多,讽刺吧?!

3 一点建议:

造成这种问题的原因是:vn.py系统更新时,没有考虑将其他的依赖模块和包做同步更新,导致很多古怪的问题的出现。
建议在生成版本更新脚本的时候,能够考虑将其他的依赖模块和包的同步更新。

Administrator
avatar
加入于:
帖子: 5108
声望: 296

对的,现在依赖库没法自动更新,我们之前考虑过,但是因为网络问题某些比较大的包(pands之类)很容易下载失败,导致死活都无法更新vn.py,这样用户体验更差了...

未来理想情况下,其实应该是我们维护一个类似anaconda的Python包服务,不过这个成本太高目前还负担不了

Member
avatar
加入于:
帖子: 298
声望: 73

用Python的交易员 wrote:

对的,现在依赖库没法自动更新,我们之前考虑过,但是因为网络问题某些比较大的包(pands之类)很容易下载失败,导致死活都无法更新vn.py,这样用户体验更差了...

未来理想情况下,其实应该是我们维护一个类似anaconda的Python包服务,不过这个成本太高目前还负担不了

理解您的苦衷,目前的vnpy已经非常优秀,非常感谢你们的付出!

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号