huicloud / pc

the open source pc client of dzhyun
Other
18 stars 20 forks source link

大智慧舵手版

大智慧舵手版是上海大智慧股份有限公司推出新一代的行情软件,依托于大智慧云平台提供的行情服务,是一套轻、快、精的跨平台的轻客户端软件。

下载体验大智慧舵手版

环境准备

1、开发工具

在Windows中需要下载并安装VS Express 2013 for Desktop以及qt-opensource-windows-x86-msvc2013-5.7.0。如果你需要调试,还需要根据你的操作系统环境下载安装wdksetup.exe

在macOS中只需要安装qt-opensource-mac-x64-clang-5.7.0即可。

2、Protobuf的编译

1) 在Windows系统中使用Microsoft Visual C++编译方式详见https://github.com/google/protobuf/blob/master/cmake/README.md

为了顺利完成Protobuf的编译,需要先安装VS Express 2013 for Desktop。 生成x86目标平台的VS Solution的cmake的参数是cmake -G "Visual Studio 12 2013",加Win64表示支持64位系统。
同时需要在VS的Solution的Properties->Configuration Properties->C/C++->Code Generation->Runtime Library设置为/MD(release)/MDd(debug)。 2) 在Unix(macOS)系统中编译,详见https://github.com/google/protobuf/blob/master/src/README.md

发布部署

部署时需要用到的相关文件均已放在Deployment文件夹中。

由于QtCreator在Windows中的Debug速度很慢,基本都在Release中进行开发,故将在Windows中部署单独使用脚本处理:

C:\Qt\Qt5.7.0\5.7\msvc2013\bin\windeployqt.exe -qmldir C:\Qt\Qt5.7.0\5.7\msvc2013\qml QDzh3.exe

由于Qt的部署工具还未完善,上述命令处理后,除了需要Deployment中需要的文件之外,还需要手动从C:\Qt\Qt5.7.0\5.7\msvc2013\qmlQtWebEngineQtQuickQtGraphicalEffects这三个文件复制到部署目录中(完全覆盖即可)。更多内容详见官方文档windows-deployment
macOS中部署相对简单些。首先在QtCreator的项目Release版本的设置中增加自定义构建步骤,具体方法详见Qt官方文档osx-deployment,同时也需要手工复制源码下的QtGraphicalEffectsQtWebEngineQDZH3.app/Contents/Resources/qml中。更多发布操作参见Apple官方文档App Distribution Quick Start

授权

客户端的数据均来自大智慧金融信息云,要让客户端能够正确展示行情,首先需要获取大智慧金融信息云的相关授权,将获取到的appid和secretkey替换generatetoken.cpp中对应字段即可

void GenerateToken::init()
{
    QDateTime date;
    date = date.currentDateTime();
    this->token_expired_time = date.toTime_t();

    int mType = ConfigureSetting::getInstance()->getDzhYunType();
    qInfo()<< "DzhYun/yuntype:"<< mType;
    if(mType == 1){
        //alpha环境
        this->appid = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
        this->secret_key = "xxxxxxxxxxxx";
        this->short_id = "0000000x";

    } else if(mType == 2){
        //beta环境
        this->appid = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
        this->secret_key = "xxxxxxxxxxxx";
        this->short_id = "0000000x";
    } else{
        //外网环境
        this->appid = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
        this->secret_key = "xxxxxxxxxxxx";
        this->short_id = "0000000x";
    }
    //有效期1天
    this->token_expired_time = date.toTime_t() + 86400;
    this->expired_time.setNum(this->token_expired_time);

    this->calculateToken();
}

登录

目前已实现支持大智慧账号、QQ以及微信账号的登录,开源版本中账号相关部分已使用模拟数据(可以通过搜索"TODO 账号"定位相关逻辑)替换,任意账号均可登录。如果需要接入自己的账号系统,请根据自身的业务规则修改对应的流程