Python量化交易平台开发教程系列7-顶层GUI界面开发(1)

量化交易backtrader实践(二)_基础加强篇(4)_交易设置与自定义绘图 这一节我们来深入实践backtrader交易的设置以及自定义绘图。 阅读详情

原创文章,转载请注明出处:用Python的交易员

前言

终于有时间来写第一篇顶层GUI界面开发相关的教程了,之前实在是事情太多,跟各位读者抱个歉。

整合底层接口的各项功能到中层引擎中后,当我们开发顶层应用时(GUI或者策略算法),只需知道中层引擎对外提供的主动API函数以及事件引擎中相关的事件类型和数据形式即可。

在GUI和策略算法这两个主要类型的顶层应用中,作者选择先介绍GUI开发的原因是:目前国内支持用户定制化开发GUI界面的量化平台少之又少,而包含一个比较全面的GUI开发教程的则据我所知还没有。随着国内越来越多的衍生品推出(期权、分级基金、未来的反向基金),很多新型的交易策略从全自动转向了半自动,经常需要交易员的手动干预(启动暂停策略、盘中微调参数等),以及投资组合层面的风险管理(期权希腊值、分级基金行业暴露等),这种情况下传统上仅支持策略算法开发的量化交易平台变得越发难以满足交易员的需求(包括作者本人),所以估计这方面的文章更能填补当前市场需求的空缺(笑...)。

PyQt

目前Python上主要的GUI开发工具包括:tkinter、PyQt、PyGTK和wxPython,笔者选择PyQt的主要原因是:

  1. Anaconda中已经包含(早期版本中包含的是LGPL协议的Pyside,稳定性不如PyQt)

  2. 另一个内置GUI库tkinter的功能太弱

网上对这四款GUI开发工具比较分析的文章很多,有兴趣的读者可以自己搜搜看。

接下来的几篇GUI开发教程会假设读者已经对PyQt开发有了一定的了解,主要针对和量化交易平台开发相关的部分,需要补充基础知识的读者建议参考以下资源:

  1. zetcode.com,上面的教程简单明了,从头到尾做一遍对PyQt的工作原理基本就有个全面的了解了

  2. Rapid GUI Programming with Python and Qt,一本由Riverbank(PyQt的开发公司)员工推出的PyQt开发教程,非常细致全面,但是部分内容跳跃性太大,需要从头到尾多看几遍

  3. 也可以在遇到特定问题时搜百度或者StackOverflow,通常都能找到答案

PyQt版本 在Riverbank官网下载:

PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe Windows 32 bit installer

请特别注意这个版本的问题,从最近几个月的经验看,很多PyQt相关模块运行时报错就是因为下错了版本(PyQt5、64位等等都不对)。

GUI组件

从功能上看,所有交易平台的GUI组件都可以分为两类,数据监控(被动)和功能调用(主动),当然也有同时混合两类功能的组件。

数据监控

enter image description here

行情监控组件,用于监控实时行情数据,每当API端有新的行情数据推送时立即进行更新。

功能调用

enter image description here

账号登录组件,用于调用中层引擎的登录功能,传入用户名、密码、服务器地址等参数。

混合(交易下单)

enter image description here

交易下单组件,左侧部分用于填入下单参数后调用中层引擎的下单功能发单,右侧部分用于监控用户输入的合约代码的实时行情(有行情推送时立即更新)。

数据监控组件

数据监控组件主要用于对交易平台中的各项数据实现实时更新或者手动更新的显示监控,最常用的包括行情、报单、成交、持仓和日志等。监控组件中最常见的类型是表格,对应PyQt中的QTableWidget组件,表格中的单元格则使用QTableWidgetItem组件。对于某些特殊的数据监控也可以使用其他类型的组件,如上面交易下单组件中右侧的部分,主要是使用标签组件QLabel构成的。

针对不同的监控内容需要实现不同的数据更新方法,例如日志、成交类数据应该使用插入更新(即每条新的数据都应该插入新的一行),行情数据应该使用固定位置更新(即在表格中固定的单元格位置更新数据),以及主要针对持仓和报单数据的混合更新(即已经存在的数据直接在对应的位置更新,否则插入新的一行)。

下面以最基础的日志监控为例介绍监控组件的实现原理,其他更为复杂的监控组件建议用户直接阅读vn.demo中demoMain.py的源代码,大部分代码作者都做了详尽的注释。

日志监控

日志监控组件主要用于输出程序运行过程中有关当前程序运行状态的信息。

enter image description here

整个实现代码如下:

########################################################################
class LogMonitor(QtGui.QTableWidget):
    """用于显示日志"""
    signal = QtCore.pyqtSignal(type(Event()))

    #----------------------------------------------------------------------
    def __init__(self, eventEngine, parent=None):
        """Constructor"""
        super(LogMonitor, self).__init__(parent)
        self.__eventEngine = eventEngine

        self.initUi()
        self.registerEvent()

    #----------------------------------------------------------------------
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'日志')

        self.setColumnCount(2)                     
        self.setHorizontalHeaderLabels([u'时间', u'日志'])

        self.verticalHeader().setVisible(False)                 # 关闭左边的垂直表头
        self.setEditTriggers(QtGui.QTableWidget.NoEditTriggers) # 设为不可编辑状态

        # 自动调整列宽
        self.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.ResizeToContents)
        self.horizontalHeader().setResizeMode(1, QtGui.QHeaderView.Stretch)

    #----------------------------------------------------------------------
    def registerEvent(self):
        """注册事件监听"""
        # Qt图形组件的GUI更新必须使用Signal/Slot机制,否则有可能导致程序崩溃
        # 因此这里先将图形更新函数作为Slot,和信号连接起来
        # 然后将信号的触发函数注册到事件驱动引擎中
        self.signal.connect(self.updateLog)
        self.__eventEngine.register(EVENT_LOG, self.signal.emit)

    #----------------------------------------------------------------------
    def updateLog(self, event):
        """更新日志"""
        # 获取当前时间和日志内容
        t = time.strftime('%H:%M:%S',time.localtime(time.time()))   
        log = event.dict_['log']

        # 在表格最上方插入一行
        self.insertRow(0)

        # 创建单元格
        cellTime = QtGui.QTableWidgetItem(t)    
        cellLog = QtGui.QTableWidgetItem(log)

        # 将单元格插入表格
        self.setItem(0, 0, cellTime)            
        self.setItem(0, 1, cellLog)

接下来逐段讲解:

对象初始化(init)

    #----------------------------------------------------------------------
    def __init__(self, eventEngine, parent=None):
        """Constructor"""
        super(LogMonitor, self).__init__(parent)
        self.__eventEngine = eventEngine

        self.initUi()
        self.registerEvent()
  • 创建对象时,我们需要传入程序中的事件驱动引擎对象eventEngine,以及该图形组件所依附的母组件对象parent(一般可以留空)

  • 把eventEngine对象的引用保存到__eventEngine上后,我们调用initUi方法初始化图形组件的界面,以及registerEvent方法来向事件引擎中注册该图形组件的事件监听函数。

初始化界面(initUi)

    #----------------------------------------------------------------------
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'日志')

        self.setColumnCount(2)                     
        self.setHorizontalHeaderLabels([u'时间', u'日志'])

        self.verticalHeader().setVisible(False)                 # 关闭左边的垂直表头
        self.setEditTriggers(QtGui.QTableWidget.NoEditTriggers) # 设为不可编辑状态

        # 自动调整列宽
        self.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.ResizeToContents)
        self.horizontalHeader().setResizeMode(1, QtGui.QHeaderView.Stretch)
  • 首先设置该图形组件左上方的标题栏内容为“日志”(日志监控组件)

  • 我们希望显示日志时,每行显示该条日志的生成时间和具体的日志内容

  • 由于QTableWidget本身比较类似于Excel表格,左侧有垂直标题栏(默认用于显示每行行号的表头)且可以编辑,我们需要关闭这两个功能

  • 另外我们希望显示日志生成时间的列的列宽可以调整为最小(只要能看见完整的时间就行),而把显示日志内容的列设为拉升(即窗口有多宽都完全覆盖)

注册事件监听(registerEvent)

这里需要稍微深入一下vn.py框架中的多线程工作机制:

  1. 整个框架在Python环境中主要包含两个线程:主线程(运行Qt循环)和事件处理线程(运行EventEngine中的工作循环)

  2. 针对用户是否需要使用GUI界面,主线程中运行的Qt循环可以选择QApplication(带GUI)或者QCoreApplication(纯cmd)

  3. Qt循环主要负责处理所有GUI相关的操作(控件绘制、信号处理等等),用户不能在其他线程中直接改变GUI界面上的任何内容,否则可能会直接导致程序崩溃

  4. 当用户希望在其他线程中对GUI进行操作时,必须依赖Qt提供的signal/slot机制,Qt循环的底层也运行着一个类似于EventEngine的事件处理机制,其他线程发出signal后会首先记录到一个队列中,然后由Qt对队列中的signal任务进行循环处理(具体请参考Qt相关的资料)

  5. 事件处理线程的工作原理在之前的教程中已经专门介绍过了,这里不再重复,用户只需记住所有Qt GUI组件的事件处理函数,都必须使用一个signal和该函数相连,并且在向事件引擎中注册函数监听时,将该signal的emit方法代替原本的事件处理函数进行注册

    ########################################################################
    class LogMonitor(QtGui.QTableWidget):
        """用于显示日志"""
        signal = QtCore.pyqtSignal(type(Event()))
    
  6. signal的创建需要放在类的构造中,而不能放在类的初始化函数里(Qt会直接报错)

  7. 由于事件驱动引擎在调用监听函数时会传入事件对象本身作为参数,因此在创建signal时需要允许传入一个类型为Event的参数

        #----------------------------------------------------------------------
        def registerEvent(self):
            """注册事件监听"""
            # Qt图形组件的GUI更新必须使用Signal/Slot机制,否则有可能导致程序崩溃
            # 因此这里先将图形更新函数作为Slot,和信号连接起来
            # 然后将信号的触发函数注册到事件驱动引擎中
            self.signal.connect(self.updateLog)
            self.__eventEngine.register(EVENT_LOG, self.signal.emit)
    
  8. 首先我们把signal和事件处理函数updateLog连接.

  9. 然后将signal的emit方法注册到事件驱动引擎中,监听EVENT_LOG类型的事件

更新日志记录(updateLog)

    #----------------------------------------------------------------------
    def updateLog(self, event):
        """更新日志"""
        # 获取当前时间和日志内容
        t = time.strftime('%H:%M:%S',time.localtime(time.time()))   
        log = event.dict_['log']

        # 在表格最上方插入一行
        self.insertRow(0)

        # 创建单元格
        cellTime = QtGui.QTableWidgetItem(t)    
        cellLog = QtGui.QTableWidgetItem(log)

        # 将单元格插入表格
        self.setItem(0, 0, cellTime)            
        self.setItem(0, 1, cellLog)
  • 感觉这段代码的注释已经足够清楚,就不多废话了

总结

尽管Qt库本身使用C++开发,相比之下在Python中使用PyQt构建GUI程序更为快捷、简便。基于Python动态语言的特性,在很多不是特别追求性能(GUI更新速度)的地方可以大幅减少用户的代码编写量,并且降低出错率。

请记住vn.py从开始就是一款专门为交易员设计的通用型交易平台开发框架(而不止是全自动的程序化交易),在金融市场上真正能帮助交易员赚钱的绝对不是多么复杂的程序算法,而是能够完美实现交易员的交易策略并且越简单越好的工具。

Python的GUI图形界面工具大全 阅读详情

相关推荐

【实战】——基于GUI编程的python股票量化交易策略之双均线策略

目录前言一、概念二、tkinter的使用1、模块的导入2、窗口和文本框的创建3、处理函数的定义4、按钮的创建5、运行结果三、实战案例——根据界面输入绘制动态K线和均线图1、模块的导入2、窗口界面和文本框的创建3、处理函数的定义3.1、获取股票数据3.2、【绘制】按钮的处理函数3.3、【计算买卖点】按钮的处理函数3.4、【重置】按钮的处理函数4、按钮的创建及canvas控件5、运行结果结语及源代码1、“登录窗口”源代码2、“股票K线均线”源代码 前言 如果有对于股票数据分析或者量化交易经典策略–双均线策略不熟

weixin_47974364的博客 3189

分布式高频量化交易系统(期货ctp,企业版,附全部源码)

本教程使用私募基金主流的开发框架,完全达到企业级使用标准。系统架构图:https://blog.csdn.net/zhaozhigen/article/details/121147903通过这个教程,你可以掌握企业级量化交易架构,期货交易业务知识,交易策略的编写,多策略的资金管理等。C++量化交易软件工程师是金融行业最热门的岗位,薪水大约每个月40K-60K。学习本教程后,你可以轻松应聘C++量化交易岗位。本教程提供全部源码。支持的接口:期货ctp。 

Python在量化领域(量化投资、量化交易)的绝对优势

Python作为发展较快的编程语言,可以让程序员更加高效地工作和集成系统。Python的语法也是优先考虑了可读性,同时支持较少的代码行。一般来说,Python语言是中低端量化交易平台最普遍的选择。中低端量化交易平台,支持复杂度不高的脚本语言实现策略逻辑,多数是在图表上加载技术指标,进行自动化交易的。

xzz_777c的博客 1271

股票量化交易软件:如何分析图表中所选择信号的交易

/--- //--- 比较对象的方法 virtual int Compare(const CObject *node,const int mode=0) const;在这个类的变量中,我们保存订单号,交易类型和手数,交易价格,操作类型 (入场/出场),订单开仓时间,当然还有品名。在此之后,根据所使用品种信号的数量,在终端中打开新窗口,并在交易上做出标记。如果在图表中找到了对象,那么赫兹股票量化将图表品种添加到品种数组中 (不过,我们会预先检查这些品种是否不在已保存的品种中)。

herzqt的博客 491

【带GUI的量化框架】

Backtrader-PyQt-UI 是一个基于 Backtrader 和 PyQt 设计的简易交易回测用户界面,允许开发者和量化交易者以图形化的方式进行策略测试和分析。QuantAnalysis 是一个使用 Python 开发的金融量化分析桌面软件,基于 PyQt5 开发,提供图形用户界面,方便用户进行金融数据分析和策略开发。vn.py 是一个基于 Python 的开源量化交易平台开发框架,支持多种交易接口,涵盖国内外的证券、期货、期权等市场。

一休 1676

量化交易最佳论文 量化交易技术

tradingmen-5 year Expected Returns 2020-2024 Escaping the Hall of Mirrors.pdf tradingmen-2019 ESG Trends to Watch.pdf tradingmen-Capturing the Opportunity of Constraints.pdf tradingmen-ETFs in Insurance General Accounts.pdf tradingmen-Factor Momentum Everywhere.pdf tradingmen-Future-Proofing Your Asset Allocation in the Age of Mega Trends.pdf tradingmen-Guide to the Markets - Asia version.pdf tradingmen-Investment Professional of the Future.pdf tradingmen-Value Vs Growth the New BuBBle.pdf

量化交易的 Python 库从数据处理到实时交易系统开发

对于任何想要涉足量化金融和系统交易领域的人来说,Python 都是不可或缺的工具。作为许多量化开发人员的首选编程语言,Python 提供了庞大的库生态系统,可简化从数据分析到策略执行的所有流程。无论您是刚起步还是想要提高技能,了解正确的 Python 库都是自信地构建和部署交易策略的关键。本指南向您介绍专业量化分析师和系统交易员使用的基本 Python 库。我们将介绍涵盖从数据处理和技术分析到回测和高级财务建模的所有内容的库。如果您渴望将交易理念转化为可执行的策略,这些库将成为您工具包的支柱。

m0_74840398的博客 1407

CANoe/CANalyzer新手必看:从零配置到报文分析的完整流程(附B站官方教程实操)

本文为CANoe/CANalyzer新手提供从零配置到报文分析的完整流程指南,涵盖硬件连接、工程配置、报文捕获及信号级分析等关键步骤。通过详细的实操案例和B站官方教程,帮助工程师快速掌握汽车电子总线分析工具的核心应用,提升诊断效率与通信系统理解。

y7z8a的博客 776

量化交易回测可视化:matplotlib

matplotlib官方文档 matplotlib的使用需要先安装numpy。设计与matlib相似。 matplotlib(维基)是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。 matplotlib模块 matplotlib.pyplot是最常用的模块。 pyplot常用功能 绘制曲线 x = np.linspace(1,10,10) y = ...

漫步量化 2258

PPO实战:如何用强化学习让小车爬上MountainCarContinuous-v0山顶(附完整代码)

本文提供了使用PPO算法解决MountainCarContinuous-v0环境的完整实战教程。针对该环境的连续动作空间和稀疏奖励挑战,文章详细解析了PPO智能体的网络架构、状态归一化、GAE优势估计等核心实现,并附带了可直接运行的PyTorch代码。同时分享了关键的调参技巧和实战避坑指南,帮助读者高效训练智能体完成小车爬坡任务。

linux的博客 968

REST-meta-MDD Data总结

sMRI数据使用:nwc1、nwc2、nwc3(同样数据集相关论坛中有相关信息指向需要使用wc1、wc2、wc3)多方咨询与讨论后决定使用nwc数据,这里说明wc数据相对wc数据要大的多如wc1的大小为1.33GB,而nwc1的数据却有6.90GB。VBM文件:/REST-meta-MDD/Sharing/REST-meta-MDD-VBM- phase1 -Sharing.tar.gz。1、Excel中的表型信息:1-男,2-女;-9999或空白表示缺少数据。

2404_88295660的博客 1542

【量化】Python量化交易平台vnpy开发-汇总笔记

文章目录0.引言1.类CTP交易API的工作原理2.类CTP交易API的Python封装设计3.vn.py项目中API封装的编译4.事件驱动引擎原理和使用5.底层接口对接6.中层引擎设计7.顶层GUI界面开发(1)8.顶层GUI界面开发(2) 文章专栏:https://zhuanlan.zhihu.com/vn-py 开源代码:https://github.com/vnpy/vnpy [5年前的文...

GreatXiang888的博客 3643

VScode搭建Opencv(C++开发环境)

VScode配置Opencv一、准备软件二 、下载软件1、MinGw下载2、 Cmake下载3、Opencv下载三、编译1、cmake-gui2、make3、install四、 VScode配置1、launch.json2、c_cpp_properties.json3、tasks.json五、测试 用了半天事件,看了各种的博客终于配置成功了,在这里记录并分享一下,让更多的人少走弯路。 本次环境是Win 10. 一、准备软件 我们本次用到的3个软件,(建议读者文件路径,文件版本 尽量都和我相同,这样不容易出错

河旬的博客 8万+

Python的GUI图形界面工具大全_python gui

Tkinter Python 的标准 Tk GUI 工具包的接口,可以在大多数的 Unix 平台下使用, 同样可以应用在 Windows 和 Mac 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

2401_87368767的博客 3374

利用HTML+CSS设计PPT:html-to-pptx实现自动化转换与可编辑输出

在办公自动化和前端开发领域,将网页技术应用于文档生成是一个重要的技术方向。其核心原理在于通过解析HTML/CSS的结构与样式,将其映射为目标文档的原生对象模型。这项技术的价值在于,它能够将Web技术栈强大的布局与样式能力(如Flexbox、CSS Grid)与办公软件(如Microsoft PowerPoint)的广泛兼容性和可编辑性相结合。在实际应用场景中,这种技术特别适合需要快速生成兼具设计感与实用性的演示文稿,例如数据报告、产品发布和营销材料。本文探讨的html-to-pptx项目正是这一思路的工程实

weixin_30652491的博客 488

【腾讯小龙虾WorkBuddy专栏04】一文搞懂WorkBuddy的「专家」和「专家团」

WorkBuddy专家与专家团:专业级AI协作解决方案 WorkBuddy的专家(Expert)与专家团(Expert Team)功能颠覆了通用AI的局限性,提供角色化、可交付的专业服务。 核心优势 专家:深度垂直领域的AI顾问,具备人设、方法论、工具链,如全栈开发专家能直接交付完整项目,而非代码片段。 专家团:多智能体协作,自动拆解复杂任务(如竞品分析、全栈开发)并分发给对应角色,并行执行后整合输出,效率提升显著。 使用场景 单专家:解决专业问题(如SQL优化、UI设计)。

AI人人懂 2038

Quantdom与PyQt5集成教程:打造专业级量化交易GUI界面的5个技巧

Quantdom是一个基于Python的量化交易回测框架,它通过PyQt5提供了强大的图形用户界面,让量化交易策略的开发、测试和分析变得更加直观和高效。本文将分享5个实用技巧,帮助您快速掌握Quantdom与PyQt5的集成方法,打造专业级的量化交易GUI界面。 ## 🎯 Quantdom量化交易框架简介 Quantdom是一个专为Python开发者设计的量化交易回测框架,它集成了PyQt5

gitblog_00016的博客 780

2025资源从哪里来!

研究网络通信中的安全问题,如VLAN划分、路由协议(静态、动态如OSPF、BGP)、NAT转换、AAA认证、访问控制列表(ACL)等。‌Wi-Fi安全设置‌、‌密码破解原理‌(仅用于合法测试或教育目的)、‌常见Web安全问题‌如SQL注入、XSS跨站脚本攻击等的防范措施。在这个网站你可以找到你对应的专业-对应的路线-对应的资源-对应的百度网盘里面全是免费的资源------------------惊喜不?‌防火墙配置与策略‌、‌入侵检测与防御系统(IDS/IPS)‌、‌端口扫描与漏洞扫描技术‌等。

qq_56248592的博客 1907

量化交易平台—顶层设计

【前言】整合底层接口的各项功能到中层引擎中后,当我们开发顶层应用时(GUI或者策略算法)。只需知道中层引擎对外提供的主动API函数以及事件引擎中相关的事件类型和数据形式即可。   在GUI和策略算法这两个主要类型的顶层应用中,先介绍GUI开发的原因是:目前国内支持用户定制化开发GUI界面的量化平台少之又少,而包含一个比较全面的GUI开发教程的则据我所知还没有。随着国内越来越多的衍生品推出(期权、...

weixin_30553777的博客 168

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1047

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

证券api接口,一个开源Python量化交易平台项目需要考虑哪些方面

开源Python量化交易平台项目建议,涉及开发、性能、用户定位、社区、安全等。比如利用相关库加快开发,考虑学习成本,明确用户定位,注重社区参与,保证安全性。

股票量化交易自动交易程序化交易接口 2175

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python的gui可以用来干嘛,python中的gui模块

图形界面图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面python流星雨教学。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。说人话就是你拿鼠标箭头点来点去的界面,点开计算器图标就跳出个计算器等。

w12130826的博客 1123

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2024年最新Python的GUI图形界面工具大全_python gui,头条后端面试题

PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。

m0_60707660的博客 689

python软件界面开发框架,python应用程序界面

图形界面图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面学python什么书比较好。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。说人话就是你拿鼠标箭头点来点去的界面,点开计算器图标就跳出个计算器等。

2301_81900386的博客 999

Lean — 优秀好用的开源量化交易平台

Lean 是 QuantConnect 开源的一款非常强大的开源量化交易平台,可以回测或运行Python或者C#写的策略,并在代码仓库中内置了上百个C#和Python的策略算法。这个开源的...

Oner.wv的专栏 5920
上一篇: Python量化交易平台开发教程系列6-中层引擎设计
下一篇: Python量化交易平台开发教程系列8-顶层GUI界面开发(2)
Trader_Python
博客等级 码龄11年 392粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值