コード例 #1
0
ファイル: Ui_combination.py プロジェクト: kiorry/PYQT
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(913, 971)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(3)
        sizePolicy.setVerticalStretch(33)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
        MainWindow.setAutoFillBackground(True)
        MainWindow.setStyleSheet("")
        MainWindow.setAnimated(True)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.centralWidget)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.tabWidget_PGMS = QtWidgets.QTabWidget(self.centralWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(20)
        sizePolicy.setVerticalStretch(44)
        sizePolicy.setHeightForWidth(self.tabWidget_PGMS.sizePolicy().hasHeightForWidth())
        self.tabWidget_PGMS.setSizePolicy(sizePolicy)
        self.tabWidget_PGMS.setMinimumSize(QtCore.QSize(800, 700))
        self.tabWidget_PGMS.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.tabWidget_PGMS.setAutoFillBackground(True)
        self.tabWidget_PGMS.setStyleSheet("")
        self.tabWidget_PGMS.setTabBarAutoHide(True)
        self.tabWidget_PGMS.setObjectName("tabWidget_PGMS")
        self.tab_Combination = QtWidgets.QWidget()
        self.tab_Combination.setObjectName("tab_Combination")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.tab_Combination)
        self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.scrollArea_3 = QtWidgets.QScrollArea(self.tab_Combination)
        self.scrollArea_3.setWidgetResizable(True)
        self.scrollArea_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.scrollArea_3.setObjectName("scrollArea_3")
        self.scrollAreaWidgetContents_3 = QtWidgets.QWidget()
        self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 852, 958))
        self.scrollAreaWidgetContents_3.setObjectName("scrollAreaWidgetContents_3")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_3)
        self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.label_7 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_7.setText("")
        self.label_7.setObjectName("label_7")
        self.verticalLayout_7.addWidget(self.label_7)
        self.label_10 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
        self.label_10.setSizePolicy(sizePolicy)
        self.label_10.setObjectName("label_10")
        self.verticalLayout_7.addWidget(self.label_10)
        self.label_11 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_11.setObjectName("label_11")
        self.verticalLayout_7.addWidget(self.label_11)
        self.label_12 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_12.setObjectName("label_12")
        self.verticalLayout_7.addWidget(self.label_12)
        self.horizontalLayout_3.addLayout(self.verticalLayout_7)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.gridLayout_5 = QtWidgets.QGridLayout()
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.label_8 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_8.setObjectName("label_8")
        self.gridLayout_5.addWidget(self.label_8, 0, 0, 1, 1)
        self.label_9 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_9.setObjectName("label_9")
        self.gridLayout_5.addWidget(self.label_9, 0, 1, 1, 1)
        self.doubleSpinBox_returns_min = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_returns_min.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_returns_min.setSizePolicy(sizePolicy)
        self.doubleSpinBox_returns_min.setMaximum(0.3)
        self.doubleSpinBox_returns_min.setSingleStep(0.01)
        self.doubleSpinBox_returns_min.setProperty("value", 0.0)
        self.doubleSpinBox_returns_min.setObjectName("doubleSpinBox_returns_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_returns_min, 1, 0, 1, 1)
        self.doubleSpinBox_returns_max = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_returns_max.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_returns_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_returns_max.setMinimum(0.0)
        self.doubleSpinBox_returns_max.setMaximum(10.0)
        self.doubleSpinBox_returns_max.setSingleStep(0.1)
        self.doubleSpinBox_returns_max.setProperty("value", 0.0)
        self.doubleSpinBox_returns_max.setObjectName("doubleSpinBox_returns_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_returns_max, 1, 1, 1, 1)
        self.doubleSpinBox_maxdrawdown_min = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        self.doubleSpinBox_maxdrawdown_min.setMinimum(0.1)
        self.doubleSpinBox_maxdrawdown_min.setMaximum(1.0)
        self.doubleSpinBox_maxdrawdown_min.setSingleStep(0.01)
        self.doubleSpinBox_maxdrawdown_min.setProperty("value", 0.7)
        self.doubleSpinBox_maxdrawdown_min.setObjectName("doubleSpinBox_maxdrawdown_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_maxdrawdown_min, 2, 0, 1, 1)
        self.doubleSpinBox_maxdrawdown_max = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_maxdrawdown_max.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_maxdrawdown_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_maxdrawdown_max.setMinimum(0.2)
        self.doubleSpinBox_maxdrawdown_max.setMaximum(1.0)
        self.doubleSpinBox_maxdrawdown_max.setSingleStep(0.01)
        self.doubleSpinBox_maxdrawdown_max.setProperty("value", 1.0)
        self.doubleSpinBox_maxdrawdown_max.setObjectName("doubleSpinBox_maxdrawdown_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_maxdrawdown_max, 2, 1, 1, 1)
        self.doubleSpinBox_sharp_min = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_sharp_min.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_sharp_min.setSizePolicy(sizePolicy)
        self.doubleSpinBox_sharp_min.setMaximum(40.0)
        self.doubleSpinBox_sharp_min.setSingleStep(0.05)
        self.doubleSpinBox_sharp_min.setObjectName("doubleSpinBox_sharp_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_sharp_min, 3, 0, 1, 1)
        self.doubleSpinBox_sharp_max = QtWidgets.QDoubleSpinBox(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_sharp_max.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_sharp_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_sharp_max.setProperty("value", 10.0)
        self.doubleSpinBox_sharp_max.setObjectName("doubleSpinBox_sharp_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_sharp_max, 3, 1, 1, 1)
        self.horizontalLayout_3.addLayout(self.gridLayout_5)
        self.line_2 = QtWidgets.QFrame(self.scrollAreaWidgetContents_3)
        self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.horizontalLayout_3.addWidget(self.line_2)
        spacerItem2 = QtWidgets.QSpacerItem(200, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.pushButton_start_combination = QtWidgets.QPushButton(self.scrollAreaWidgetContents_3)
        self.pushButton_start_combination.setObjectName("pushButton_start_combination")
        self.horizontalLayout_3.addWidget(self.pushButton_start_combination)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem3)
        self.verticalLayout_6.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.checkBox_stock = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_stock.setObjectName("checkBox_stock")
        self.horizontalLayout_7.addWidget(self.checkBox_stock)
        self.checkBox_compound = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_compound.setObjectName("checkBox_compound")
        self.horizontalLayout_7.addWidget(self.checkBox_compound)
        self.checkBox_future_manage = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_future_manage.setObjectName("checkBox_future_manage")
        self.horizontalLayout_7.addWidget(self.checkBox_future_manage)
        self.checkBox_event = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_event.setObjectName("checkBox_event")
        self.horizontalLayout_7.addWidget(self.checkBox_event)
        self.checkBox_bond = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_bond.setObjectName("checkBox_bond")
        self.horizontalLayout_7.addWidget(self.checkBox_bond)
        self.checkBox_macro = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_macro.setObjectName("checkBox_macro")
        self.horizontalLayout_7.addWidget(self.checkBox_macro)
        self.checkBox_combination_fund = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_combination_fund.setObjectName("checkBox_combination_fund")
        self.horizontalLayout_7.addWidget(self.checkBox_combination_fund)
        self.checkBox_relative_fund = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_relative_fund.setObjectName("checkBox_relative_fund")
        self.horizontalLayout_7.addWidget(self.checkBox_relative_fund)
        self.checkBox_others = QtWidgets.QCheckBox(self.scrollAreaWidgetContents_3)
        self.checkBox_others.setObjectName("checkBox_others")
        self.horizontalLayout_7.addWidget(self.checkBox_others)
        self.verticalLayout_6.addLayout(self.horizontalLayout_7)
        self.verticalLayout_8.addLayout(self.verticalLayout_6)
        self.QWebEngineview_Combination_monte_markovitz = QWebEngineView(self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_monte_markovitz.setMinimumSize(QtCore.QSize(0, 300))
        self.QWebEngineview_Combination_monte_markovitz.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_monte_markovitz.setObjectName("QWebEngineview_Combination_monte_markovitz")
        self.verticalLayout_8.addWidget(self.QWebEngineview_Combination_monte_markovitz)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.QWebEngineview_Combination_Pie = QWebEngineView(self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Pie.setMinimumSize(QtCore.QSize(50, 200))
        self.QWebEngineview_Combination_Pie.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Pie.setObjectName("QWebEngineview_Combination_Pie")
        self.horizontalLayout_5.addWidget(self.QWebEngineview_Combination_Pie)
        self.QWebEngineview_Combination_Table = QWebEngineView(self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Table.setMinimumSize(QtCore.QSize(0, 200))
        self.QWebEngineview_Combination_Table.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Table.setObjectName("QWebEngineview_Combination_Table")
        self.horizontalLayout_5.addWidget(self.QWebEngineview_Combination_Table)
        self.verticalLayout_8.addLayout(self.horizontalLayout_5)
        self.QWebEngineview_Combination_Versus = QWebEngineView(self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Versus.setEnabled(True)
        self.QWebEngineview_Combination_Versus.setMinimumSize(QtCore.QSize(0, 300))
        self.QWebEngineview_Combination_Versus.setStyleSheet("background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Versus.setObjectName("QWebEngineview_Combination_Versus")
        self.verticalLayout_8.addWidget(self.QWebEngineview_Combination_Versus)
        self.QWebEngineview_Combination_monte_markovitz.raise_()
        self.QWebEngineview_Combination_Versus.raise_()
        self.scrollArea_3.setWidget(self.scrollAreaWidgetContents_3)
        self.horizontalLayout_6.addWidget(self.scrollArea_3)
        self.tabWidget_PGMS.addTab(self.tab_Combination, "")
        self.verticalLayout_5.addWidget(self.tabWidget_PGMS)
        MainWindow.setCentralWidget(self.centralWidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 913, 23))
        self.menuBar.setObjectName("menuBar")
        MainWindow.setMenuBar(self.menuBar)
        self.action = QtWidgets.QAction(MainWindow)
        self.action.setObjectName("action")
        self.action_2 = QtWidgets.QAction(MainWindow)
        self.action_2.setObjectName("action_2")
        self.action_3 = QtWidgets.QAction(MainWindow)
        self.action_3.setObjectName("action_3")
        self.action_4 = QtWidgets.QAction(MainWindow)
        self.action_4.setObjectName("action_4")
        self.action_5 = QtWidgets.QAction(MainWindow)
        self.action_5.setObjectName("action_5")
        self.action_6 = QtWidgets.QAction(MainWindow)
        self.action_6.setObjectName("action_6")
        self.action_8 = QtWidgets.QAction(MainWindow)
        self.action_8.setObjectName("action_8")
        self.action_9 = QtWidgets.QAction(MainWindow)
        self.action_9.setObjectName("action_9")
        self.action_10 = QtWidgets.QAction(MainWindow)
        self.action_10.setObjectName("action_10")
        self.action_11 = QtWidgets.QAction(MainWindow)
        self.action_11.setObjectName("action_11")
        self.action_Qt = QtWidgets.QAction(MainWindow)
        self.action_Qt.setObjectName("action_Qt")
        self.action_PyQt = QtWidgets.QAction(MainWindow)
        self.action_PyQt.setObjectName("action_PyQt")
        self.action_12 = QtWidgets.QAction(MainWindow)
        self.action_12.setObjectName("action_12")

        self.retranslateUi(MainWindow)
        self.tabWidget_PGMS.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "基金量化投研系统v0.11"))
        self.label_10.setText(_translate("MainWindow", "收益"))
        self.label_11.setText(_translate("MainWindow", "最大回撤"))
        self.label_12.setText(_translate("MainWindow", "Sharp比"))
        self.label_8.setText(_translate("MainWindow", "最小范围"))
        self.label_9.setText(_translate("MainWindow", "最大范围"))
        self.pushButton_start_combination.setText(_translate("MainWindow", "开始"))
        self.checkBox_stock.setText(_translate("MainWindow", "股票策略"))
        self.checkBox_compound.setText(_translate("MainWindow", "复合策略"))
        self.checkBox_future_manage.setText(_translate("MainWindow", "管理期货"))
        self.checkBox_event.setText(_translate("MainWindow", "事件驱动"))
        self.checkBox_bond.setText(_translate("MainWindow", "债券策略"))
        self.checkBox_macro.setText(_translate("MainWindow", "宏观策略"))
        self.checkBox_combination_fund.setText(_translate("MainWindow", "组合基金"))
        self.checkBox_relative_fund.setText(_translate("MainWindow", "相对价值"))
        self.checkBox_others.setText(_translate("MainWindow", "其它策略"))
        self.tabWidget_PGMS.setTabText(self.tabWidget_PGMS.indexOf(self.tab_Combination), _translate("MainWindow", "产品组合管理"))
        self.action.setText(_translate("MainWindow", "打开"))
        self.action_2.setText(_translate("MainWindow", "关闭"))
        self.action_3.setText(_translate("MainWindow", "保存"))
        self.action_4.setText(_translate("MainWindow", "退出"))
        self.action_5.setText(_translate("MainWindow", "复制"))
        self.action_6.setText(_translate("MainWindow", "黏贴"))
        self.action_8.setText(_translate("MainWindow", "哈哈"))
        self.action_9.setText(_translate("MainWindow", "关于"))
        self.action_10.setText(_translate("MainWindow", "使用说明"))
        self.action_11.setText(_translate("MainWindow", "关于软件"))
        self.action_Qt.setText(_translate("MainWindow", "关于Qt"))
        self.action_PyQt.setText(_translate("MainWindow", "关于PyQt"))
        self.action_12.setText(_translate("MainWindow", "其他"))
コード例 #2
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(913, 971)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(3)
        sizePolicy.setVerticalStretch(33)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
        MainWindow.setAutoFillBackground(True)
        MainWindow.setStyleSheet("")
        MainWindow.setAnimated(True)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.centralWidget)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.tabWidget_PGMS = QtWidgets.QTabWidget(self.centralWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(20)
        sizePolicy.setVerticalStretch(44)
        sizePolicy.setHeightForWidth(
            self.tabWidget_PGMS.sizePolicy().hasHeightForWidth())
        self.tabWidget_PGMS.setSizePolicy(sizePolicy)
        self.tabWidget_PGMS.setMinimumSize(QtCore.QSize(800, 700))
        self.tabWidget_PGMS.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.tabWidget_PGMS.setAutoFillBackground(True)
        self.tabWidget_PGMS.setStyleSheet("")
        self.tabWidget_PGMS.setTabBarAutoHide(True)
        self.tabWidget_PGMS.setObjectName("tabWidget_PGMS")
        self.tab_Combination = QtWidgets.QWidget()
        self.tab_Combination.setObjectName("tab_Combination")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.tab_Combination)
        self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.scrollArea_3 = QtWidgets.QScrollArea(self.tab_Combination)
        self.scrollArea_3.setWidgetResizable(True)
        self.scrollArea_3.setAlignment(QtCore.Qt.AlignLeading
                                       | QtCore.Qt.AlignLeft
                                       | QtCore.Qt.AlignTop)
        self.scrollArea_3.setObjectName("scrollArea_3")
        self.scrollAreaWidgetContents_3 = QtWidgets.QWidget()
        self.scrollAreaWidgetContents_3.setGeometry(
            QtCore.QRect(0, 0, 852, 958))
        self.scrollAreaWidgetContents_3.setObjectName(
            "scrollAreaWidgetContents_3")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout(
            self.scrollAreaWidgetContents_3)
        self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem = QtWidgets.QSpacerItem(40, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.label_7 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_7.setText("")
        self.label_7.setObjectName("label_7")
        self.verticalLayout_7.addWidget(self.label_7)
        self.label_10 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_10.sizePolicy().hasHeightForWidth())
        self.label_10.setSizePolicy(sizePolicy)
        self.label_10.setObjectName("label_10")
        self.verticalLayout_7.addWidget(self.label_10)
        self.label_11 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_11.setObjectName("label_11")
        self.verticalLayout_7.addWidget(self.label_11)
        self.label_12 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_12.setObjectName("label_12")
        self.verticalLayout_7.addWidget(self.label_12)
        self.horizontalLayout_3.addLayout(self.verticalLayout_7)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.gridLayout_5 = QtWidgets.QGridLayout()
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.label_8 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_8.setObjectName("label_8")
        self.gridLayout_5.addWidget(self.label_8, 0, 0, 1, 1)
        self.label_9 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
        self.label_9.setObjectName("label_9")
        self.gridLayout_5.addWidget(self.label_9, 0, 1, 1, 1)
        self.doubleSpinBox_returns_min = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.doubleSpinBox_returns_min.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_returns_min.setSizePolicy(sizePolicy)
        self.doubleSpinBox_returns_min.setMaximum(0.3)
        self.doubleSpinBox_returns_min.setSingleStep(0.01)
        self.doubleSpinBox_returns_min.setProperty("value", 0.0)
        self.doubleSpinBox_returns_min.setObjectName(
            "doubleSpinBox_returns_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_returns_min, 1, 0, 1, 1)
        self.doubleSpinBox_returns_max = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.doubleSpinBox_returns_max.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_returns_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_returns_max.setMinimum(0.0)
        self.doubleSpinBox_returns_max.setMaximum(10.0)
        self.doubleSpinBox_returns_max.setSingleStep(0.1)
        self.doubleSpinBox_returns_max.setProperty("value", 0.0)
        self.doubleSpinBox_returns_max.setObjectName(
            "doubleSpinBox_returns_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_returns_max, 1, 1, 1, 1)
        self.doubleSpinBox_maxdrawdown_min = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        self.doubleSpinBox_maxdrawdown_min.setMinimum(0.1)
        self.doubleSpinBox_maxdrawdown_min.setMaximum(1.0)
        self.doubleSpinBox_maxdrawdown_min.setSingleStep(0.01)
        self.doubleSpinBox_maxdrawdown_min.setProperty("value", 0.7)
        self.doubleSpinBox_maxdrawdown_min.setObjectName(
            "doubleSpinBox_maxdrawdown_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_maxdrawdown_min, 2, 0,
                                    1, 1)
        self.doubleSpinBox_maxdrawdown_max = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.doubleSpinBox_maxdrawdown_max.
                                     sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_maxdrawdown_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_maxdrawdown_max.setMinimum(0.2)
        self.doubleSpinBox_maxdrawdown_max.setMaximum(1.0)
        self.doubleSpinBox_maxdrawdown_max.setSingleStep(0.01)
        self.doubleSpinBox_maxdrawdown_max.setProperty("value", 1.0)
        self.doubleSpinBox_maxdrawdown_max.setObjectName(
            "doubleSpinBox_maxdrawdown_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_maxdrawdown_max, 2, 1,
                                    1, 1)
        self.doubleSpinBox_sharp_min = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.doubleSpinBox_sharp_min.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_sharp_min.setSizePolicy(sizePolicy)
        self.doubleSpinBox_sharp_min.setMaximum(40.0)
        self.doubleSpinBox_sharp_min.setSingleStep(0.05)
        self.doubleSpinBox_sharp_min.setObjectName("doubleSpinBox_sharp_min")
        self.gridLayout_5.addWidget(self.doubleSpinBox_sharp_min, 3, 0, 1, 1)
        self.doubleSpinBox_sharp_max = QtWidgets.QDoubleSpinBox(
            self.scrollAreaWidgetContents_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.doubleSpinBox_sharp_max.sizePolicy().hasHeightForWidth())
        self.doubleSpinBox_sharp_max.setSizePolicy(sizePolicy)
        self.doubleSpinBox_sharp_max.setProperty("value", 10.0)
        self.doubleSpinBox_sharp_max.setObjectName("doubleSpinBox_sharp_max")
        self.gridLayout_5.addWidget(self.doubleSpinBox_sharp_max, 3, 1, 1, 1)
        self.horizontalLayout_3.addLayout(self.gridLayout_5)
        self.line_2 = QtWidgets.QFrame(self.scrollAreaWidgetContents_3)
        self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.horizontalLayout_3.addWidget(self.line_2)
        spacerItem2 = QtWidgets.QSpacerItem(200, 20,
                                            QtWidgets.QSizePolicy.Fixed,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.pushButton_start_combination = QtWidgets.QPushButton(
            self.scrollAreaWidgetContents_3)
        self.pushButton_start_combination.setObjectName(
            "pushButton_start_combination")
        self.horizontalLayout_3.addWidget(self.pushButton_start_combination)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem3)
        self.verticalLayout_6.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.checkBox_stock = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_stock.setObjectName("checkBox_stock")
        self.horizontalLayout_7.addWidget(self.checkBox_stock)
        self.checkBox_compound = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_compound.setObjectName("checkBox_compound")
        self.horizontalLayout_7.addWidget(self.checkBox_compound)
        self.checkBox_future_manage = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_future_manage.setObjectName("checkBox_future_manage")
        self.horizontalLayout_7.addWidget(self.checkBox_future_manage)
        self.checkBox_event = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_event.setObjectName("checkBox_event")
        self.horizontalLayout_7.addWidget(self.checkBox_event)
        self.checkBox_bond = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_bond.setObjectName("checkBox_bond")
        self.horizontalLayout_7.addWidget(self.checkBox_bond)
        self.checkBox_macro = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_macro.setObjectName("checkBox_macro")
        self.horizontalLayout_7.addWidget(self.checkBox_macro)
        self.checkBox_combination_fund = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_combination_fund.setObjectName(
            "checkBox_combination_fund")
        self.horizontalLayout_7.addWidget(self.checkBox_combination_fund)
        self.checkBox_relative_fund = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_relative_fund.setObjectName("checkBox_relative_fund")
        self.horizontalLayout_7.addWidget(self.checkBox_relative_fund)
        self.checkBox_others = QtWidgets.QCheckBox(
            self.scrollAreaWidgetContents_3)
        self.checkBox_others.setObjectName("checkBox_others")
        self.horizontalLayout_7.addWidget(self.checkBox_others)
        self.verticalLayout_6.addLayout(self.horizontalLayout_7)
        self.verticalLayout_8.addLayout(self.verticalLayout_6)
        self.QWebEngineview_Combination_monte_markovitz = QWebEngineView(
            self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_monte_markovitz.setMinimumSize(
            QtCore.QSize(0, 300))
        self.QWebEngineview_Combination_monte_markovitz.setStyleSheet(
            "background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_monte_markovitz.setObjectName(
            "QWebEngineview_Combination_monte_markovitz")
        self.verticalLayout_8.addWidget(
            self.QWebEngineview_Combination_monte_markovitz)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.QWebEngineview_Combination_Pie = QWebEngineView(
            self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Pie.setMinimumSize(
            QtCore.QSize(50, 200))
        self.QWebEngineview_Combination_Pie.setStyleSheet(
            "background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Pie.setObjectName(
            "QWebEngineview_Combination_Pie")
        self.horizontalLayout_5.addWidget(self.QWebEngineview_Combination_Pie)
        self.QWebEngineview_Combination_Table = QWebEngineView(
            self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Table.setMinimumSize(
            QtCore.QSize(0, 200))
        self.QWebEngineview_Combination_Table.setStyleSheet(
            "background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Table.setObjectName(
            "QWebEngineview_Combination_Table")
        self.horizontalLayout_5.addWidget(
            self.QWebEngineview_Combination_Table)
        self.verticalLayout_8.addLayout(self.horizontalLayout_5)
        self.QWebEngineview_Combination_Versus = QWebEngineView(
            self.scrollAreaWidgetContents_3)
        self.QWebEngineview_Combination_Versus.setEnabled(True)
        self.QWebEngineview_Combination_Versus.setMinimumSize(
            QtCore.QSize(0, 300))
        self.QWebEngineview_Combination_Versus.setStyleSheet(
            "background-color: rgb(170, 170, 127);")
        self.QWebEngineview_Combination_Versus.setObjectName(
            "QWebEngineview_Combination_Versus")
        self.verticalLayout_8.addWidget(self.QWebEngineview_Combination_Versus)
        self.QWebEngineview_Combination_monte_markovitz.raise_()
        self.QWebEngineview_Combination_Versus.raise_()
        self.scrollArea_3.setWidget(self.scrollAreaWidgetContents_3)
        self.horizontalLayout_6.addWidget(self.scrollArea_3)
        self.tabWidget_PGMS.addTab(self.tab_Combination, "")
        self.verticalLayout_5.addWidget(self.tabWidget_PGMS)
        MainWindow.setCentralWidget(self.centralWidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 913, 23))
        self.menuBar.setObjectName("menuBar")
        MainWindow.setMenuBar(self.menuBar)
        self.action = QtWidgets.QAction(MainWindow)
        self.action.setObjectName("action")
        self.action_2 = QtWidgets.QAction(MainWindow)
        self.action_2.setObjectName("action_2")
        self.action_3 = QtWidgets.QAction(MainWindow)
        self.action_3.setObjectName("action_3")
        self.action_4 = QtWidgets.QAction(MainWindow)
        self.action_4.setObjectName("action_4")
        self.action_5 = QtWidgets.QAction(MainWindow)
        self.action_5.setObjectName("action_5")
        self.action_6 = QtWidgets.QAction(MainWindow)
        self.action_6.setObjectName("action_6")
        self.action_8 = QtWidgets.QAction(MainWindow)
        self.action_8.setObjectName("action_8")
        self.action_9 = QtWidgets.QAction(MainWindow)
        self.action_9.setObjectName("action_9")
        self.action_10 = QtWidgets.QAction(MainWindow)
        self.action_10.setObjectName("action_10")
        self.action_11 = QtWidgets.QAction(MainWindow)
        self.action_11.setObjectName("action_11")
        self.action_Qt = QtWidgets.QAction(MainWindow)
        self.action_Qt.setObjectName("action_Qt")
        self.action_PyQt = QtWidgets.QAction(MainWindow)
        self.action_PyQt.setObjectName("action_PyQt")
        self.action_12 = QtWidgets.QAction(MainWindow)
        self.action_12.setObjectName("action_12")

        self.retranslateUi(MainWindow)
        self.tabWidget_PGMS.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "基金量化投研系統v0.11"))
        self.label_10.setText(_translate("MainWindow", "收益"))
        self.label_11.setText(_translate("MainWindow", "最大回撤"))
        self.label_12.setText(_translate("MainWindow", "Sharp比"))
        self.label_8.setText(_translate("MainWindow", "最小範圍"))
        self.label_9.setText(_translate("MainWindow", "最大範圍"))
        self.pushButton_start_combination.setText(
            _translate("MainWindow", "開始"))
        self.checkBox_stock.setText(_translate("MainWindow", "股票策略"))
        self.checkBox_compound.setText(_translate("MainWindow", "複合策略"))
        self.checkBox_future_manage.setText(_translate("MainWindow", "管理期貨"))
        self.checkBox_event.setText(_translate("MainWindow", "事件驅動"))
        self.checkBox_bond.setText(_translate("MainWindow", "債券策略"))
        self.checkBox_macro.setText(_translate("MainWindow", "宏觀策略"))
        self.checkBox_combination_fund.setText(_translate(
            "MainWindow", "組合基金"))
        self.checkBox_relative_fund.setText(_translate("MainWindow", "相對價值"))
        self.checkBox_others.setText(_translate("MainWindow", "其他策略"))
        self.tabWidget_PGMS.setTabText(
            self.tabWidget_PGMS.indexOf(self.tab_Combination),
            _translate("MainWindow", "產品組合管理"))
        self.action.setText(_translate("MainWindow", "開啟"))
        self.action_2.setText(_translate("MainWindow", "關閉"))
        self.action_3.setText(_translate("MainWindow", "儲存"))
        self.action_4.setText(_translate("MainWindow", "退出"))
        self.action_5.setText(_translate("MainWindow", "複製"))
        self.action_6.setText(_translate("MainWindow", "貼上"))
        self.action_8.setText(_translate("MainWindow", "哈哈"))
        self.action_9.setText(_translate("MainWindow", "關於"))
        self.action_10.setText(_translate("MainWindow", "使用說明"))
        self.action_11.setText(_translate("MainWindow", "關於軟體"))
        self.action_Qt.setText(_translate("MainWindow", "關於Qt"))
        self.action_PyQt.setText(_translate("MainWindow", "關於PyQt"))
        self.action_12.setText(_translate("MainWindow", "其他"))
コード例 #3
0
class TimetrackerUI(AbstractUI):

    organization: Organization
    _widget: Optional[QWidget]
    calendar: QCalendarWidget
    progress: QProgressBar
    pb_download: QPushButton
    pb_close: QPushButton
    webview: QWebEngineView

    signal_progress = QtCore.pyqtSignal(int, int)
    signal_success = QtCore.pyqtSignal(str)
    signal_failure = QtCore.pyqtSignal(str)

    def __init__(
        self,
        context: AbstractContext,
        organization: Organization,
        helper: HelperType,
        qapp: QApplication,
    ):
        super().__init__(qapp, context)
        self.context = context
        self.organization = organization
        self.helper = helper
        self._widget = None

    def widget(self) -> QWidget:
        if not self._widget:
            self._widget = uic.loadUi(
                self.context.get_resource("ui/timetracker.ui"))
            self.pb_close = self._widget.findChild(QPushButton, "pbClose")
            self.pb_close.clicked.connect(self.pb_close_clicked)
            self.calendar = self._widget.findChild(QCalendarWidget, "calendar")
            self.calendar.setLocale(
                QLocale(QLocale.English, QLocale.UnitedKingdom))
            self.progress = self._widget.findChild(QProgressBar, "progress")
            self.pb_download = self._widget.findChild(QPushButton,
                                                      "pbDownload")
            self.pb_download.clicked.connect(self.pb_download_clicked)
            self.webview = QWebEngineView(self._widget)
            self._widget.layout().addWidget(self.webview)
            self.signal_success.connect(self.success)
            self.signal_progress.connect(self.show_progress)
        return self._widget

    def active(self, state):
        self.calendar.setEnabled(state)
        self.pb_close.setEnabled(state)
        self.pb_download.setEnabled(state)
        self.webview.setEnabled(state)

    def pb_download_clicked(self):
        self.active(False)
        self.context.show_status("Download in progress...")
        try:
            date = self.calendar.selectedDate().toPyDate()
        except Exception as e:
            logging.error(e)
            self.message_error("The date is incorrect")
            return
        TimetrackerTask(self, date).start()

    def success(self, html: str):
        self.active(True)
        self.webview.setHtml(html)
        self.context.clear_status()

    def show_progress(self, value: int, max_value: int):
        self.progress.setValue(value)
        self.progress.setMaximum(max_value)