diff --git a/README.md b/README.md index b54549f2..8641c5c7 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ sys.setdefaultencoding('utf8') # vn.trader模块 from vnpy.event import EventEngine from vnpy.trader.vtEngine import MainEngine -from vnpy.trader.uiQt import qApp +from vnpy.trader.uiQt import createQApp from vnpy.trader.uiMainWindow import MainWindow # 加载底层接口 @@ -77,6 +77,9 @@ from vnpy.trader.app import riskManager, ctaStrategy #---------------------------------------------------------------------- def main(): """主程序入口""" + # 创建Qt应用对象 + qApp = createQApp() + # 创建事件引擎 ee = EventEngine() diff --git a/examples/VnTrader/run.py b/examples/VnTrader/run.py index 28aadddf..179a1edb 100644 --- a/examples/VnTrader/run.py +++ b/examples/VnTrader/run.py @@ -12,7 +12,7 @@ system = platform.system() # vn.trader模块 from vnpy.event import EventEngine from vnpy.trader.vtEngine import MainEngine -from vnpy.trader.uiQt import qApp +from vnpy.trader.uiQt import createQApp from vnpy.trader.uiMainWindow import MainWindow # 加载底层接口 @@ -30,6 +30,9 @@ from vnpy.trader.app import (riskManager, ctaStrategy, spreadTrading) #---------------------------------------------------------------------- def main(): """主程序入口""" + # 创建Qt应用对象 + qApp = createQApp() + # 创建事件引擎 ee = EventEngine() diff --git a/vnpy/trader/archive/vtClient.py b/vnpy/trader/archive/vtClient.py index 205a7af5..88d62cfe 100644 --- a/vnpy/trader/archive/vtClient.py +++ b/vnpy/trader/archive/vtClient.py @@ -11,7 +11,7 @@ from vnpy.rpc import RpcClient from vnpy.trader.vtGlobal import globalSetting from vnpy.trader.vtEngine import MainEngine -from vnpy.trader.uiQt import qApp +from vnpy.trader.uiQt import createQApp from vnpy.trader.uiMainWindow import MainWindow @@ -148,6 +148,9 @@ class ClientEngine(MainEngine): #---------------------------------------------------------------------- def main(): """客户端主程序入口""" + # 创建Qt对象 + qApp = createQApp() + # 创建事件引擎 eventEngine = EventEngine2() eventEngine.start(timer=False) diff --git a/vnpy/trader/uiQt.py b/vnpy/trader/uiQt.py index c8ca4f0c..227ffc55 100644 --- a/vnpy/trader/uiQt.py +++ b/vnpy/trader/uiQt.py @@ -7,30 +7,37 @@ from qtpy import QtWidgets, QtGui, QtCore from vnpy.trader.vtGlobal import globalSetting from vnpy.trader.vtFunction import loadIconPath -# 创建Qt应用对象 -qApp = QtWidgets.QApplication([]) -# 设置Qt的皮肤 -if globalSetting['darkStyle']: - try: - import qdarkstyle - qApp.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False)) - except ImportError: - pass +#---------------------------------------------------------------------- +def createQApp(): + """创建PyQt应用对象""" + # 创建Qt应用对象 + qApp = QtWidgets.QApplication([]) -# 设置Windows底部任务栏图标 -if 'Windows' in platform.uname(): - import ctypes - ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('vn.trader') - -# 设置Qt字体 -try: - family = globalSetting['fontFamily'] - size = globalSetting['fontSize'] - BASIC_FONT = QtGui.QFont(family, size) -except: - BASIC_FONT = QtGui.QFont(u'微软雅黑', 12) -qApp.setFont(BASIC_FONT) - -# 设置Qt图标 -qApp.setWindowIcon(QtGui.QIcon(loadIconPath('vnpy.ico'))) \ No newline at end of file + # 设置Qt的皮肤 + if globalSetting['darkStyle']: + try: + import qdarkstyle + qApp.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False)) + except ImportError: + pass + + # 设置Windows底部任务栏图标 + if 'Windows' in platform.uname(): + import ctypes + ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('vn.trader') + + # 设置Qt字体 + try: + family = globalSetting['fontFamily'] + size = globalSetting['fontSize'] + BASIC_FONT = QtGui.QFont(family, size) + except: + BASIC_FONT = QtGui.QFont(u'微软雅黑', 12) + qApp.setFont(BASIC_FONT) + + # 设置Qt图标 + qApp.setWindowIcon(QtGui.QIcon(loadIconPath('vnpy.ico'))) + + # 返回创建好的QApp对象 + return qApp \ No newline at end of file