示例#1
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(1057, 678)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.tabWidget = QtGui.QTabWidget(self.centralwidget)
        self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
        self.chartTab = QtGui.QWidget()
        self.chartTab.setObjectName(_fromUtf8("chartTab"))
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.chartTab)
        self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
        self.oneDayToolButton = QtGui.QToolButton(self.chartTab)
        self.oneDayToolButton.setCheckable(True)
        self.oneDayToolButton.setObjectName(_fromUtf8("oneDayToolButton"))
        self.buttonGroup = QtGui.QButtonGroup(MainWindow)
        self.buttonGroup.setObjectName(_fromUtf8("buttonGroup"))
        self.buttonGroup.addButton(self.oneDayToolButton)
        self.horizontalLayout_2.addWidget(self.oneDayToolButton)
        self.fiveDayToolButton = QtGui.QToolButton(self.chartTab)
        self.fiveDayToolButton.setCheckable(True)
        self.fiveDayToolButton.setObjectName(_fromUtf8("fiveDayToolButton"))
        self.buttonGroup.addButton(self.fiveDayToolButton)
        self.horizontalLayout_2.addWidget(self.fiveDayToolButton)
        self.oneMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.oneMonthToolButton.setCheckable(True)
        self.oneMonthToolButton.setObjectName(_fromUtf8("oneMonthToolButton"))
        self.buttonGroup.addButton(self.oneMonthToolButton)
        self.horizontalLayout_2.addWidget(self.oneMonthToolButton)
        self.threeMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.threeMonthToolButton.setCheckable(True)
        self.threeMonthToolButton.setObjectName(
            _fromUtf8("threeMonthToolButton"))
        self.buttonGroup.addButton(self.threeMonthToolButton)
        self.horizontalLayout_2.addWidget(self.threeMonthToolButton)
        self.sixMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.sixMonthToolButton.setCheckable(True)
        self.sixMonthToolButton.setObjectName(_fromUtf8("sixMonthToolButton"))
        self.buttonGroup.addButton(self.sixMonthToolButton)
        self.horizontalLayout_2.addWidget(self.sixMonthToolButton)
        self.oneYearToolButton = QtGui.QToolButton(self.chartTab)
        self.oneYearToolButton.setCheckable(True)
        self.oneYearToolButton.setObjectName(_fromUtf8("oneYearToolButton"))
        self.buttonGroup.addButton(self.oneYearToolButton)
        self.horizontalLayout_2.addWidget(self.oneYearToolButton)
        self.twoYearToolButton = QtGui.QToolButton(self.chartTab)
        self.twoYearToolButton.setCheckable(True)
        self.twoYearToolButton.setObjectName(_fromUtf8("twoYearToolButton"))
        self.buttonGroup.addButton(self.twoYearToolButton)
        self.horizontalLayout_2.addWidget(self.twoYearToolButton)
        self.fiveYearToolButton = QtGui.QToolButton(self.chartTab)
        self.fiveYearToolButton.setCheckable(True)
        self.fiveYearToolButton.setObjectName(_fromUtf8("fiveYearToolButton"))
        self.buttonGroup.addButton(self.fiveYearToolButton)
        self.horizontalLayout_2.addWidget(self.fiveYearToolButton)
        self.maxToolButton = QtGui.QToolButton(self.chartTab)
        self.maxToolButton.setCheckable(True)
        self.maxToolButton.setChecked(True)
        self.maxToolButton.setObjectName(_fromUtf8("maxToolButton"))
        self.buttonGroup.addButton(self.maxToolButton)
        self.horizontalLayout_2.addWidget(self.maxToolButton)
        self.line_2 = QtGui.QFrame(self.chartTab)
        self.line_2.setFrameShape(QtGui.QFrame.VLine)
        self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_2.setObjectName(_fromUtf8("line_2"))
        self.horizontalLayout_2.addWidget(self.line_2)
        self.styleToolButton = QtGui.QToolButton(self.chartTab)
        self.styleToolButton.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.styleToolButton.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.styleToolButton.setPopupMode(QtGui.QToolButton.InstantPopup)
        self.styleToolButton.setArrowType(QtCore.Qt.NoArrow)
        self.styleToolButton.setObjectName(_fromUtf8("styleToolButton"))
        self.horizontalLayout_2.addWidget(self.styleToolButton)
        self.line_3 = QtGui.QFrame(self.chartTab)
        self.line_3.setFrameShape(QtGui.QFrame.VLine)
        self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_3.setObjectName(_fromUtf8("line_3"))
        self.horizontalLayout_2.addWidget(self.line_3)
        self.indicatorToolButton = QtGui.QToolButton(self.chartTab)
        self.indicatorToolButton.setContextMenuPolicy(
            QtCore.Qt.ActionsContextMenu)
        self.indicatorToolButton.setPopupMode(QtGui.QToolButton.InstantPopup)
        self.indicatorToolButton.setToolButtonStyle(
            QtCore.Qt.ToolButtonIconOnly)
        self.indicatorToolButton.setObjectName(
            _fromUtf8("indicatorToolButton"))
        self.horizontalLayout_2.addWidget(self.indicatorToolButton)
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.symbolLineEdit = QtGui.QLineEdit(self.chartTab)
        self.symbolLineEdit.setObjectName(_fromUtf8("symbolLineEdit"))
        self.horizontalLayout_2.addWidget(self.symbolLineEdit)
        self.pushButton = QtGui.QPushButton(self.chartTab)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.horizontalLayout_2.addWidget(self.pushButton)
        self.verticalLayout_3.addLayout(self.horizontalLayout_2)
        self.scrollArea = QtGui.QScrollArea(self.chartTab)
        self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
        self.scrollArea.setHorizontalScrollBarPolicy(
            QtCore.Qt.ScrollBarAsNeeded)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName(_fromUtf8("scrollArea"))
        self.scrollAreaWidgetContents_2 = QtGui.QWidget()
        self.scrollAreaWidgetContents_2.setGeometry(
            QtCore.QRect(0, 0, 733, 527))
        self.scrollAreaWidgetContents_2.setObjectName(
            _fromUtf8("scrollAreaWidgetContents_2"))
        self.verticalLayout_4 = QtGui.QVBoxLayout(
            self.scrollAreaWidgetContents_2)
        self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
        self.matplotlibWidget = MatplotlibWidget(
            self.scrollAreaWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.matplotlibWidget.sizePolicy().hasHeightForWidth())
        self.matplotlibWidget.setSizePolicy(sizePolicy)
        self.matplotlibWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.matplotlibWidget.setObjectName(_fromUtf8("matplotlibWidget"))
        self.verticalLayout_4.addWidget(self.matplotlibWidget)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents_2)
        self.verticalLayout_3.addWidget(self.scrollArea)
        self.tabWidget.addTab(self.chartTab, _fromUtf8(""))
        self.statsTab = QtGui.QWidget()
        self.statsTab.setObjectName(_fromUtf8("statsTab"))
        self.tabWidget.addTab(self.statsTab, _fromUtf8(""))
        self.horizontalLayout.addWidget(self.tabWidget)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.dockWidget = QtGui.QDockWidget(MainWindow)
        self.dockWidget.setObjectName(_fromUtf8("dockWidget"))
        self.dockWidgetContents = QtGui.QWidget()
        self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents"))
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.dockWidgetContents)
        self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.strategyListWidget = QtGui.QListWidget(self.dockWidgetContents)
        self.strategyListWidget.setContextMenuPolicy(
            QtCore.Qt.CustomContextMenu)
        self.strategyListWidget.setObjectName(_fromUtf8("strategyListWidget"))
        self.verticalLayout.addWidget(self.strategyListWidget)
        self.label = QtGui.QLabel(self.dockWidgetContents)
        self.label.setObjectName(_fromUtf8("label"))
        self.verticalLayout.addWidget(self.label)
        self.dateStartEdit = QtGui.QDateEdit(self.dockWidgetContents)
        self.dateStartEdit.setFocusPolicy(QtCore.Qt.NoFocus)
        self.dateStartEdit.setDate(QtCore.QDate(2011, 1, 1))
        self.dateStartEdit.setCalendarPopup(True)
        self.dateStartEdit.setTimeSpec(QtCore.Qt.LocalTime)
        self.dateStartEdit.setObjectName(_fromUtf8("dateStartEdit"))
        self.verticalLayout.addWidget(self.dateStartEdit)
        self.label_2 = QtGui.QLabel(self.dockWidgetContents)
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.verticalLayout.addWidget(self.label_2)
        self.dateEndEdit = QtGui.QDateEdit(self.dockWidgetContents)
        self.dateEndEdit.setFocusPolicy(QtCore.Qt.NoFocus)
        self.dateEndEdit.setDate(QtCore.QDate(2012, 1, 1))
        self.dateEndEdit.setCalendarPopup(True)
        self.dateEndEdit.setObjectName(_fromUtf8("dateEndEdit"))
        self.verticalLayout.addWidget(self.dateEndEdit)
        self.label_3 = QtGui.QLabel(self.dockWidgetContents)
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.verticalLayout.addWidget(self.label_3)
        self.initialCashSpinBox = QtGui.QSpinBox(self.dockWidgetContents)
        self.initialCashSpinBox.setFocusPolicy(QtCore.Qt.NoFocus)
        self.initialCashSpinBox.setFrame(True)
        self.initialCashSpinBox.setButtonSymbols(
            QtGui.QAbstractSpinBox.UpDownArrows)
        self.initialCashSpinBox.setMaximum(999999999)
        self.initialCashSpinBox.setProperty("value", 50000000)
        self.initialCashSpinBox.setObjectName(_fromUtf8("initialCashSpinBox"))
        self.verticalLayout.addWidget(self.initialCashSpinBox)
        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem1)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.dockWidget.setWidget(self.dockWidgetContents)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget)
        self.menuBar = QtGui.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 1057, 25))
        self.menuBar.setObjectName(_fromUtf8("menuBar"))
        self.menu_View = QtGui.QMenu(self.menuBar)
        self.menu_View.setObjectName(_fromUtf8("menu_View"))
        self.menu_Settings = QtGui.QMenu(self.menuBar)
        self.menu_Settings.setObjectName(_fromUtf8("menu_Settings"))
        MainWindow.setMenuBar(self.menuBar)
        self.actionExit = QtGui.QAction(MainWindow)
        self.actionExit.setObjectName(_fromUtf8("actionExit"))
        self.actionTest3 = QtGui.QAction(MainWindow)
        self.actionTest3.setObjectName(_fromUtf8("actionTest3"))
        self.actionTest5 = QtGui.QAction(MainWindow)
        self.actionTest5.setObjectName(_fromUtf8("actionTest5"))
        self.actionExit_2 = QtGui.QAction(MainWindow)
        self.actionExit_2.setObjectName(_fromUtf8("actionExit_2"))
        self.actionLineChart = QtGui.QAction(MainWindow)
        self.actionLineChart.setObjectName(_fromUtf8("actionLineChart"))
        self.actionBacktest_Window = QtGui.QAction(MainWindow)
        self.actionBacktest_Window.setCheckable(True)
        self.actionBacktest_Window.setChecked(True)
        self.actionBacktest_Window.setObjectName(
            _fromUtf8("actionBacktest_Window"))
        self.actionPerference = QtGui.QAction(MainWindow)
        self.actionPerference.setObjectName(_fromUtf8("actionPerference"))
        self.actionRunStrategy = QtGui.QAction(MainWindow)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/run.png")),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionRunStrategy.setIcon(icon)
        self.actionRunStrategy.setObjectName(_fromUtf8("actionRunStrategy"))
        self.actionEditStrategy = QtGui.QAction(MainWindow)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/edit.png")),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionEditStrategy.setIcon(icon1)
        self.actionEditStrategy.setObjectName(_fromUtf8("actionEditStrategy"))
        self.menu_View.addAction(self.actionBacktest_Window)
        self.menu_Settings.addAction(self.actionPerference)
        self.menuBar.addAction(self.menu_View.menuAction())
        self.menuBar.addAction(self.menu_Settings.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QObject.connect(self.actionBacktest_Window,
                               QtCore.SIGNAL(_fromUtf8("toggled(bool)")),
                               self.dockWidget.setVisible)
        QtCore.QObject.connect(
            self.dockWidget,
            QtCore.SIGNAL(_fromUtf8("visibilityChanged(bool)")),
            self.actionBacktest_Window.setChecked)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "Backtester", None))
        self.oneDayToolButton.setText(_translate("MainWindow", "1d", None))
        self.fiveDayToolButton.setText(_translate("MainWindow", "5d", None))
        self.oneMonthToolButton.setText(_translate("MainWindow", "1m", None))
        self.threeMonthToolButton.setText(_translate("MainWindow", "3m", None))
        self.sixMonthToolButton.setText(_translate("MainWindow", "6m", None))
        self.oneYearToolButton.setText(_translate("MainWindow", "1y", None))
        self.twoYearToolButton.setText(_translate("MainWindow", "2y", None))
        self.fiveYearToolButton.setText(_translate("MainWindow", "5y", None))
        self.maxToolButton.setText(_translate("MainWindow", "Max", None))
        self.styleToolButton.setText(_translate("MainWindow", "Style", None))
        self.indicatorToolButton.setText(
            _translate("MainWindow", "+Indicator", None))
        self.pushButton.setText(_translate("MainWindow", "+Comparison", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.chartTab),
                                  _translate("MainWindow", "Chart", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.statsTab),
                                  _translate("MainWindow", "Statistics", None))
        self.dockWidget.setWindowTitle(
            _translate("MainWindow", "Backtest Panel", None))
        self.label.setText(_translate("MainWindow", "Start", None))
        self.dateStartEdit.setDisplayFormat(
            _translate("MainWindow", "MM/dd/yyyy", None))
        self.label_2.setText(_translate("MainWindow", "End", None))
        self.dateEndEdit.setDisplayFormat(
            _translate("MainWindow", "MM/dd/yyyy", None))
        self.label_3.setText(_translate("MainWindow", "Initial Cash", None))
        self.initialCashSpinBox.setPrefix(_translate("MainWindow", "$ ", None))
        self.menu_View.setTitle(_translate("MainWindow", "&View", None))
        self.menu_Settings.setTitle(_translate("MainWindow", "&Settings",
                                               None))
        self.actionExit.setText(_translate("MainWindow", "Exit", None))
        self.actionTest3.setText(_translate("MainWindow", "test3", None))
        self.actionTest5.setText(_translate("MainWindow", "test5", None))
        self.actionExit_2.setText(_translate("MainWindow", "Exit", None))
        self.actionLineChart.setText(
            _translate("MainWindow", "LineChart", None))
        self.actionBacktest_Window.setText(
            _translate("MainWindow", "Backtest Panel", None))
        self.actionPerference.setText(
            _translate("MainWindow", "Preferences...", None))
        self.actionRunStrategy.setText(
            _translate("MainWindow", "Run Strategy", None))
        self.actionEditStrategy.setText(
            _translate("MainWindow", "Edit Strategy", None))
示例#2
0
class DataDisplayWidget(QtGui.QWidget):
    def __init__(self):
        super(DataDisplayWidget, self).__init__()

        # Defaults

        self.cm = 'hot'
        self.ipm = 'none'
        self.is3D = False
        self.asNewScanCallback = None

        self.xlabel = 'x'
        self.ylabel = 'y'
        self.cmapdata = numpy.zeros((32, 256), numpy.uint16)
        for i in xrange(0, 31):
            self.cmapdata[i, :] = numpy.linspace(0, 255, 256)

        #Setup UI and stuff

        self.setupUI()
        self.generateContextMenu()
        self.setupActions()
        self.registerCMs()

        self.data = numpy.zeros((128, 128), numpy.uint16)
        self.data = numpy.outer(numpy.linspace(0, numpy.sqrt(256), 128),
                                numpy.linspace(0, numpy.sqrt(256), 128))

        ltz = self.data > 0
        self.maxData = numpy.max(self.data[ltz])
        self.minData = numpy.min(self.data[ltz])

        self.setAutoscale(True)
        self._hasSelection(False)
        self._draw()

    def setupUI(self):
        self.majorLayout = QtGui.QVBoxLayout(self)
        self.dataWidget = MatplotlibWidget()
        self.dataWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)

        self.majorLayout.addWidget(self.dataWidget)

        self.cbar = MatplotlibWidget()

        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.cbar.sizePolicy().hasHeightForWidth())
        self.cbar.setSizePolicy(sizePolicy)
        self.cbar.setMaximumSize(QtCore.QSize(2**15 - 1, 32))
        self.updCM()
        #        self.majorLayout.addWidget(self.cbar)

        self.minDataEdit = QtGui.QLineEdit()
        self.maxDataEdit = QtGui.QLineEdit()

        editSizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum,
                                           QtGui.QSizePolicy.Maximum)

        self.minDataEdit.setSizePolicy(editSizePolicy)
        self.maxDataEdit.setSizePolicy(editSizePolicy)
        self.minDataEdit.setMaximumSize(QtCore.QSize(128, 32))
        self.maxDataEdit.setMaximumSize(QtCore.QSize(128, 32))

        self.minDataEdit.setMinimumSize(QtCore.QSize(64, 32))
        self.maxDataEdit.setMinimumSize(QtCore.QSize(64, 32))

        self.cbarlayout = QtGui.QHBoxLayout()
        self.cbarlayout.addWidget(self.minDataEdit)
        self.cbarlayout.addWidget(self.cbar)
        self.cbarlayout.addWidget(self.maxDataEdit)

        self.majorLayout.addLayout(self.cbarlayout)
        # Expose properties of mpw

    def setupActions(self):
        self.maxDataEdit.textChanged.connect(self.maxDataChanged)
        self.minDataEdit.textChanged.connect(self.minDataChanged)
        self.dataWidget.customContextMenuRequested.connect(
            self.openContextMenu)

    def onSelect(self, eclick, erelease):
        x = numpy.min([eclick.xdata, erelease.xdata])
        y = numpy.min([eclick.ydata, erelease.ydata])

        w = abs(eclick.xdata - erelease.xdata)
        h = abs(eclick.ydata - erelease.ydata)

        try:
            self.selectionRect.remove()
        except:
            pass
        if h > 3 and w > 3:
            self.selection = {'x': x, 'y': y, 'w': w, 'h': h}
            self.selectionRect = Rectangle((x, y), w, h, fill=False)
            self.dataWidget.figure.axes[0].add_patch(self.selectionRect)
            self.dataWidget.draw()
            self._hasSelection(True)
        else:
            self._hasSelection(False)
            self.selection = {'x': None, 'y': None, 'w': None, 'h': None}

    def _hasSelection(self, yn):
        self.hasSelection = yn
        self.acAsNewScan.setEnabled(yn)

    def maxDataChanged(self, txt):
        if float(txt) >= self.minData:
            self.maxData = float(txt)
            self._draw()

    def minDataChanged(self, txt):
        if float(txt) <= self.maxData:
            self.minData = float(txt)
            self._draw()

    def setXLabel(self, xlabel):
        self.xlab = xlabel

    def setYLabel(self, ylabel):
        self.ylab = ylabel

    def update(self, data):
        self.data = data
        self._draw()

    def _draw(self, **kwargs):
        if self.is3D:
            self.draw3D()
        else:
            if (self.isAutoScale):
                idx = self.data > 0
                self.maxData = numpy.max(self.data[idx])
                self.minData = numpy.min(self.data[idx])
                print "min data is: " + str(self.minData)
                self.minDataEdit.setText(str(self.minData))
                self.maxDataEdit.setText(str(self.maxData))
            self.dataWidget.axes.imshow(self.data,
                                        cmap=self.cm,
                                        clim=(self.minData, self.maxData),
                                        interpolation=self.ipm)
            self.selector = RectangleSelector(self.dataWidget.axes,
                                              self.onSelect,
                                              button=1,
                                              useblit=True)

            self.dataWidget.draw()

    def draw3D(self):
        print "3D drawing not yet implemented"

    def openContextMenu(self, point):
        self.popMenu.exec_(self.dataWidget.mapToGlobal(point))

    def generateContextMenu(self):
        self.popMenu = QtGui.QMenu(self)
        self.acSetAutoScale = QtGui.QAction('Autoscale', self)
        self.acSetAutoScale.setCheckable(True)
        self.acSetAutoScale.setChecked(True)
        self.popMenu.addAction(self.acSetAutoScale)

        self.acSetAutoScale.toggled.connect(self.setAutoscale)

        self.acSet3D = QtGui.QAction('3D', self)
        self.acSet3D.setCheckable(True)
        self.acSet3D.setChecked(False)
        self.popMenu.addAction(self.acSet3D)

        self.acgCM = QtGui.QActionGroup(self)

        self.CMmenu = QtGui.QMenu(self)
        self.CMmenu.setTitle('Colormaps')

        for cm in ("gray|red|green|blue|red white|green white|blue white|" +
                   "cyan|magenta|cyan white|jet|" +
                   "magenta white|hot|cyan hot|afmhot|bmg").split("|"):
            ac = QtGui.QAction(cm, self.acgCM)
            ac.triggered.connect(functools.partial(self.setCM, cm))
            ac.setCheckable(True)
            if cm == self.cm:
                ac.setChecked(True)
        ip_methods = [
            'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36',
            'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom',
            'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos'
        ]

        self.acgIP = QtGui.QActionGroup(self)
        for ip in ip_methods:
            ac = QtGui.QAction(ip, self.acgIP)
            ac.triggered.connect(functools.partial(self.setIP, ip))
            ac.setCheckable(True)

            self.acgIP.addAction(ac)

        self.IPmenu = QtGui.QMenu(self)
        self.IPmenu.setTitle('Interpolation')
        self.IPmenu.addActions(self.acgIP.actions())

        self.CMmenu.addActions(self.acgCM.actions())

        self.popMenu.addSeparator()
        self.popMenu.addMenu(self.CMmenu)
        self.popMenu.addSeparator()
        self.popMenu.addMenu(self.IPmenu)

        self.acAsNewScan = QtGui.QAction("Use selection as new scan",
                                         self.popMenu)
        self.acAsNewScan.triggered.connect(self.onAsNewScan)
        self.acAsNewScan.setEnabled(False)
        self.popMenu.addSeparator()
        self.popMenu.addAction(self.acAsNewScan)

    def setIP(self, ip):
        self.ipm = ip
        self._draw()

    def setAutoscale(self, chk):
        self.isAutoScale = chk
        self.minDataEdit.setEnabled(not chk)
        self.maxDataEdit.setEnabled(not chk)

    def set3D(self, chk):
        self.is3D = chk

    def setCM(self, cm):
        self.cm = cm
        self._draw()
        self.updCM()

    def updCM(self):
        self.cbarplt = self.cbar.axes.imshow(self.cmapdata, cmap=self.cm)
        self.cbar.axes.axis('off')
        self.cbar.axes.axis('tight')
        self.cbar.draw()

    def registerCMs(self):
        cyanAndRedHot = {
            'red': (
                (0.0, 0.0, 0.0),
                (0.2, 0.0, 0.0),
                (0.2 + 0.8 / 3.0, 1.0, 1.0),
                (1.0, 1.0, 1.0),
            ),
            'green':
            ((0.0, 1.0, 1.0), (0.2, 0.0, 0.0), (0.2 + 0.8 / 3.0, 0.0, 0.0),
             (0.2 + 1.6 / 3.0, 1.0, 1.0), (1.0, 1.0, 1.0)),
            'blue':
            ((0.0, 1.0, 1.0), (0.2, 0.0, 0.0), (0.2 + 0.8 / 3.0, 0.0, 0.0),
             (0.2 + 1.6 / 3.0, 0.0, 0.0), (1.0, 1.0, 1.0))
        }
        cm = matplotlib.colors.LinearSegmentedColormap('cyan hot',
                                                       cyanAndRedHot)
        matplotlib.pyplot.register_cmap(cmap=cm)

        red = {
            'red': ((0, 0, 0), (1, 1, 1)),
            'green': ((0, 0, 0), (1, 0, 0)),
            'blue': ((0, 0, 0), (1, 0, 0)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('red', red)
        matplotlib.pyplot.register_cmap(cmap=cm)

        green = {
            'red': ((0, 0, 0), (1, 0, 0)),
            'green': ((0, 0, 0), (1, 1, 1)),
            'blue': ((0, 0, 0), (1, 0, 0)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('green', green)
        matplotlib.pyplot.register_cmap(cmap=cm)

        blue = {
            'red': ((0, 0, 0), (1, 0, 0)),
            'green': ((0, 0, 0), (1, 0, 0)),
            'blue': ((0, 0, 0), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('blue', blue)
        matplotlib.pyplot.register_cmap(cmap=cm)

        magenta = {
            'red': ((0, 0, 0), (1, 1, 1)),
            'green': ((0, 0, 0), (1, 0, 0)),
            'blue': ((0, 0, 0), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('magenta', magenta)
        matplotlib.pyplot.register_cmap(cmap=cm)

        cyan = {
            'red': ((0, 0, 0), (1, 0, 0)),
            'green': ((0, 0, 0), (1, 1, 1)),
            'blue': ((0, 0, 0), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('cyan', cyan)
        matplotlib.pyplot.register_cmap(cmap=cm)

        redwhite = {
            'red': ((0, 0, 0), (.5, 1, 1), (1, 1, 1)),
            'green': ((0, 0, 0), (0.5, 0, 0), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 0, 0), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('red white', redwhite)
        matplotlib.pyplot.register_cmap(cmap=cm)
        greenwhite = {
            'red': ((0, 0, 0), (.5, 0, 0), (1, 1, 1)),
            'green': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 0, 0), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('green white',
                                                       greenwhite)
        matplotlib.pyplot.register_cmap(cmap=cm)
        bluewhite = {
            'red': ((0, 0, 0), (.5, 0, 0), (1, 1, 1)),
            'green': ((0, 0, 0), (0.5, 0, 0), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('blue white', bluewhite)
        matplotlib.pyplot.register_cmap(cmap=cm)

        bmg = {
            'red': ((0, 0, 0), (.5, 1, 1), (1, 0, 0)),
            'green': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 1, 1), (1, 0, 0)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('bmg', bmg)
        matplotlib.pyplot.register_cmap(cmap=cm)

        magentawhite = {
            'red': ((0, 0, 0), (.5, 1, 1), (1, 1, 1)),
            'green': ((0, 0, 0), (0.5, 0, 0), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('magenta white',
                                                       magentawhite)
        matplotlib.pyplot.register_cmap(cmap=cm)

        cyanwhite = {
            'red': ((0, 0, 0), (.5, 0, 0), (1, 1, 1)),
            'green': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
            'blue': ((0, 0, 0), (0.5, 1, 1), (1, 1, 1)),
        }

        cm = matplotlib.colors.LinearSegmentedColormap('cyan white', cyanwhite)
        cm.set_over((0, 0, 1))
        matplotlib.pyplot.register_cmap(cmap=cm)

    def onAsNewScan(self):
        try:
            x = int(round(self.selection['x']))
            y = int(round(self.selection['y']))
            w = int(round(self.selection['w']))
            h = int(round(self.selection['h']))
            self.asNewScanCallback(self.selection, self.data[y:y + h, x:x + w])
        except AttributeError:
            print "No Callback set for opening selection in a new scan."
            self.asNewScanCallback(self.selection, self.data[y:y + h, x:x + w])
示例#3
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(883, 616)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.tabWidget = QtGui.QTabWidget(self.centralwidget)
        self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
        self.chartTab = QtGui.QWidget()
        self.chartTab.setObjectName(_fromUtf8("chartTab"))
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.chartTab)
        self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
        self.oneDayToolButton = QtGui.QToolButton(self.chartTab)
        self.oneDayToolButton.setCheckable(True)
        self.oneDayToolButton.setObjectName(_fromUtf8("oneDayToolButton"))
        self.buttonGroup = QtGui.QButtonGroup(MainWindow)
        self.buttonGroup.setObjectName(_fromUtf8("buttonGroup"))
        self.buttonGroup.addButton(self.oneDayToolButton)
        self.horizontalLayout_2.addWidget(self.oneDayToolButton)
        self.fiveDayToolButton = QtGui.QToolButton(self.chartTab)
        self.fiveDayToolButton.setCheckable(True)
        self.fiveDayToolButton.setObjectName(_fromUtf8("fiveDayToolButton"))
        self.buttonGroup.addButton(self.fiveDayToolButton)
        self.horizontalLayout_2.addWidget(self.fiveDayToolButton)
        self.oneMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.oneMonthToolButton.setCheckable(True)
        self.oneMonthToolButton.setObjectName(_fromUtf8("oneMonthToolButton"))
        self.buttonGroup.addButton(self.oneMonthToolButton)
        self.horizontalLayout_2.addWidget(self.oneMonthToolButton)
        self.threeMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.threeMonthToolButton.setCheckable(True)
        self.threeMonthToolButton.setObjectName(_fromUtf8("threeMonthToolButton"))
        self.buttonGroup.addButton(self.threeMonthToolButton)
        self.horizontalLayout_2.addWidget(self.threeMonthToolButton)
        self.sixMonthToolButton = QtGui.QToolButton(self.chartTab)
        self.sixMonthToolButton.setCheckable(True)
        self.sixMonthToolButton.setObjectName(_fromUtf8("sixMonthToolButton"))
        self.buttonGroup.addButton(self.sixMonthToolButton)
        self.horizontalLayout_2.addWidget(self.sixMonthToolButton)
        self.oneYearToolButton = QtGui.QToolButton(self.chartTab)
        self.oneYearToolButton.setCheckable(True)
        self.oneYearToolButton.setObjectName(_fromUtf8("oneYearToolButton"))
        self.buttonGroup.addButton(self.oneYearToolButton)
        self.horizontalLayout_2.addWidget(self.oneYearToolButton)
        self.twoYearToolButton = QtGui.QToolButton(self.chartTab)
        self.twoYearToolButton.setCheckable(True)
        self.twoYearToolButton.setObjectName(_fromUtf8("twoYearToolButton"))
        self.buttonGroup.addButton(self.twoYearToolButton)
        self.horizontalLayout_2.addWidget(self.twoYearToolButton)
        self.fiveYearToolButton = QtGui.QToolButton(self.chartTab)
        self.fiveYearToolButton.setCheckable(True)
        self.fiveYearToolButton.setObjectName(_fromUtf8("fiveYearToolButton"))
        self.buttonGroup.addButton(self.fiveYearToolButton)
        self.horizontalLayout_2.addWidget(self.fiveYearToolButton)
        self.maxToolButton = QtGui.QToolButton(self.chartTab)
        self.maxToolButton.setCheckable(True)
        self.maxToolButton.setChecked(True)
        self.maxToolButton.setObjectName(_fromUtf8("maxToolButton"))
        self.buttonGroup.addButton(self.maxToolButton)
        self.horizontalLayout_2.addWidget(self.maxToolButton)
        self.line_2 = QtGui.QFrame(self.chartTab)
        self.line_2.setFrameShape(QtGui.QFrame.VLine)
        self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_2.setObjectName(_fromUtf8("line_2"))
        self.horizontalLayout_2.addWidget(self.line_2)
        self.styleToolButton = QtGui.QToolButton(self.chartTab)
        self.styleToolButton.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.styleToolButton.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.styleToolButton.setPopupMode(QtGui.QToolButton.InstantPopup)
        self.styleToolButton.setArrowType(QtCore.Qt.NoArrow)
        self.styleToolButton.setObjectName(_fromUtf8("styleToolButton"))
        self.horizontalLayout_2.addWidget(self.styleToolButton)
        self.line_3 = QtGui.QFrame(self.chartTab)
        self.line_3.setFrameShape(QtGui.QFrame.VLine)
        self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_3.setObjectName(_fromUtf8("line_3"))
        self.horizontalLayout_2.addWidget(self.line_3)
        self.indicatorToolButton = QtGui.QToolButton(self.chartTab)
        self.indicatorToolButton.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.indicatorToolButton.setPopupMode(QtGui.QToolButton.InstantPopup)
        self.indicatorToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.indicatorToolButton.setObjectName(_fromUtf8("indicatorToolButton"))
        self.horizontalLayout_2.addWidget(self.indicatorToolButton)
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.loadQuoteButton = QtGui.QPushButton(self.chartTab)
        self.loadQuoteButton.setObjectName(_fromUtf8("loadQuoteButton"))
        self.horizontalLayout_2.addWidget(self.loadQuoteButton)
        self.pushButton = QtGui.QPushButton(self.chartTab)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.horizontalLayout_2.addWidget(self.pushButton)
        self.verticalLayout_3.addLayout(self.horizontalLayout_2)
        self.matplotlibWidget = MatplotlibWidget(self.chartTab)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.matplotlibWidget.sizePolicy().hasHeightForWidth())
        self.matplotlibWidget.setSizePolicy(sizePolicy)
        self.matplotlibWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.matplotlibWidget.setObjectName(_fromUtf8("matplotlibWidget"))
        self.verticalLayout_3.addWidget(self.matplotlibWidget)
        self.tabWidget.addTab(self.chartTab, _fromUtf8(""))
        self.statsTab = QtGui.QWidget()
        self.statsTab.setObjectName(_fromUtf8("statsTab"))
        self.tabWidget.addTab(self.statsTab, _fromUtf8(""))
        self.horizontalLayout.addWidget(self.tabWidget)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.dockWidget = QtGui.QDockWidget(MainWindow)
        self.dockWidget.setObjectName(_fromUtf8("dockWidget"))
        self.dockWidgetContents = QtGui.QWidget()
        self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents"))
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.dockWidgetContents)
        self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.line = QtGui.QFrame(self.dockWidgetContents)
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName(_fromUtf8("line"))
        self.verticalLayout.addWidget(self.line)
        self.strategyListWidget = QtGui.QListWidget(self.dockWidgetContents)
        self.strategyListWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.strategyListWidget.setObjectName(_fromUtf8("strategyListWidget"))
        self.verticalLayout.addWidget(self.strategyListWidget)
        self.label = QtGui.QLabel(self.dockWidgetContents)
        self.label.setObjectName(_fromUtf8("label"))
        self.verticalLayout.addWidget(self.label)
        self.dateStartEdit = QtGui.QDateEdit(self.dockWidgetContents)
        self.dateStartEdit.setFocusPolicy(QtCore.Qt.NoFocus)
        self.dateStartEdit.setDate(QtCore.QDate(2011, 1, 1))
        self.dateStartEdit.setCalendarPopup(True)
        self.dateStartEdit.setTimeSpec(QtCore.Qt.LocalTime)
        self.dateStartEdit.setObjectName(_fromUtf8("dateStartEdit"))
        self.verticalLayout.addWidget(self.dateStartEdit)
        self.label_2 = QtGui.QLabel(self.dockWidgetContents)
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.verticalLayout.addWidget(self.label_2)
        self.dateEndEdit = QtGui.QDateEdit(self.dockWidgetContents)
        self.dateEndEdit.setFocusPolicy(QtCore.Qt.NoFocus)
        self.dateEndEdit.setDate(QtCore.QDate(2012, 1, 1))
        self.dateEndEdit.setCalendarPopup(True)
        self.dateEndEdit.setObjectName(_fromUtf8("dateEndEdit"))
        self.verticalLayout.addWidget(self.dateEndEdit)
        self.label_3 = QtGui.QLabel(self.dockWidgetContents)
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.verticalLayout.addWidget(self.label_3)
        self.initialCashSpinBox = QtGui.QSpinBox(self.dockWidgetContents)
        self.initialCashSpinBox.setFocusPolicy(QtCore.Qt.NoFocus)
        self.initialCashSpinBox.setFrame(True)
        self.initialCashSpinBox.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows)
        self.initialCashSpinBox.setMaximum(999999999)
        self.initialCashSpinBox.setProperty("value", 50000000)
        self.initialCashSpinBox.setObjectName(_fromUtf8("initialCashSpinBox"))
        self.verticalLayout.addWidget(self.initialCashSpinBox)
        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem1)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.dockWidget.setWidget(self.dockWidgetContents)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget)
        self.menuBar = QtGui.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 883, 22))
        self.menuBar.setObjectName(_fromUtf8("menuBar"))
        self.menu_View = QtGui.QMenu(self.menuBar)
        self.menu_View.setObjectName(_fromUtf8("menu_View"))
        self.menu_Settings = QtGui.QMenu(self.menuBar)
        self.menu_Settings.setObjectName(_fromUtf8("menu_Settings"))
        MainWindow.setMenuBar(self.menuBar)
        self.actionExit = QtGui.QAction(MainWindow)
        self.actionExit.setObjectName(_fromUtf8("actionExit"))
        self.actionTest3 = QtGui.QAction(MainWindow)
        self.actionTest3.setObjectName(_fromUtf8("actionTest3"))
        self.actionTest5 = QtGui.QAction(MainWindow)
        self.actionTest5.setObjectName(_fromUtf8("actionTest5"))
        self.actionExit_2 = QtGui.QAction(MainWindow)
        self.actionExit_2.setObjectName(_fromUtf8("actionExit_2"))
        self.actionLineChart = QtGui.QAction(MainWindow)
        self.actionLineChart.setObjectName(_fromUtf8("actionLineChart"))
        self.actionBacktest_Window = QtGui.QAction(MainWindow)
        self.actionBacktest_Window.setCheckable(True)
        self.actionBacktest_Window.setChecked(True)
        self.actionBacktest_Window.setObjectName(_fromUtf8("actionBacktest_Window"))
        self.actionPerference = QtGui.QAction(MainWindow)
        self.actionPerference.setObjectName(_fromUtf8("actionPerference"))
        self.actionRunStrategy = QtGui.QAction(MainWindow)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/run.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionRunStrategy.setIcon(icon)
        self.actionRunStrategy.setObjectName(_fromUtf8("actionRunStrategy"))
        self.actionEditStrategy = QtGui.QAction(MainWindow)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/edit.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionEditStrategy.setIcon(icon1)
        self.actionEditStrategy.setObjectName(_fromUtf8("actionEditStrategy"))
        self.menu_View.addAction(self.actionBacktest_Window)
        self.menu_Settings.addAction(self.actionPerference)
        self.menuBar.addAction(self.menu_View.menuAction())
        self.menuBar.addAction(self.menu_Settings.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QObject.connect(self.actionBacktest_Window, QtCore.SIGNAL(_fromUtf8("toggled(bool)")), self.dockWidget.setVisible)
        QtCore.QObject.connect(self.dockWidget, QtCore.SIGNAL(_fromUtf8("visibilityChanged(bool)")), self.actionBacktest_Window.setChecked)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "Backtester", None))
        self.oneDayToolButton.setText(_translate("MainWindow", "1d", None))
        self.fiveDayToolButton.setText(_translate("MainWindow", "5d", None))
        self.oneMonthToolButton.setText(_translate("MainWindow", "1m", None))
        self.threeMonthToolButton.setText(_translate("MainWindow", "3m", None))
        self.sixMonthToolButton.setText(_translate("MainWindow", "6m", None))
        self.oneYearToolButton.setText(_translate("MainWindow", "1y", None))
        self.twoYearToolButton.setText(_translate("MainWindow", "2y", None))
        self.fiveYearToolButton.setText(_translate("MainWindow", "5y", None))
        self.maxToolButton.setText(_translate("MainWindow", "Max", None))
        self.styleToolButton.setText(_translate("MainWindow", "Style", None))
        self.indicatorToolButton.setText(_translate("MainWindow", "+Indicator", None))
        self.loadQuoteButton.setText(_translate("MainWindow", "Load Quote", None))
        self.pushButton.setText(_translate("MainWindow", "+Comparison", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.chartTab), _translate("MainWindow", "Chart", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.statsTab), _translate("MainWindow", "Statistics", None))
        self.dockWidget.setWindowTitle(_translate("MainWindow", "Backtest Panel", None))
        self.label.setText(_translate("MainWindow", "Start", None))
        self.dateStartEdit.setDisplayFormat(_translate("MainWindow", "MM/dd/yyyy", None))
        self.label_2.setText(_translate("MainWindow", "End", None))
        self.dateEndEdit.setDisplayFormat(_translate("MainWindow", "MM/dd/yyyy", None))
        self.label_3.setText(_translate("MainWindow", "Initial Cash", None))
        self.initialCashSpinBox.setPrefix(_translate("MainWindow", "$ ", None))
        self.menu_View.setTitle(_translate("MainWindow", "&View", None))
        self.menu_Settings.setTitle(_translate("MainWindow", "&Settings", None))
        self.actionExit.setText(_translate("MainWindow", "Exit", None))
        self.actionTest3.setText(_translate("MainWindow", "test3", None))
        self.actionTest5.setText(_translate("MainWindow", "test5", None))
        self.actionExit_2.setText(_translate("MainWindow", "Exit", None))
        self.actionLineChart.setText(_translate("MainWindow", "LineChart", None))
        self.actionBacktest_Window.setText(_translate("MainWindow", "Backtest Panel", None))
        self.actionPerference.setText(_translate("MainWindow", "Preferences...", None))
        self.actionRunStrategy.setText(_translate("MainWindow", "Run Strategy", None))
        self.actionEditStrategy.setText(_translate("MainWindow", "Edit Strategy", None))
示例#4
0
class Ui_Figures(object):
    def setupUi(self, Figures):
        Figures.setObjectName(_fromUtf8("Figures"))
        Figures.resize(410, 508)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(Figures.sizePolicy().hasHeightForWidth())
        Figures.setSizePolicy(sizePolicy)
        self.verticalLayout = QtGui.QVBoxLayout(Figures)
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.allfiles_check = QtGui.QCheckBox(Figures)
        self.allfiles_check.setObjectName(_fromUtf8("allfiles_check"))
        self.horizontalLayout.addWidget(self.allfiles_check)
        self.label = QtGui.QLabel(Figures)
        self.label.setObjectName(_fromUtf8("label"))
        self.horizontalLayout.addWidget(self.label)
        self.all_radio = QtGui.QRadioButton(Figures)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.all_radio.sizePolicy().hasHeightForWidth())
        self.all_radio.setSizePolicy(sizePolicy)
        self.all_radio.setChecked(True)
        self.all_radio.setObjectName(_fromUtf8("all_radio"))
        self.horizontalLayout.addWidget(self.all_radio)
        spacerItem = QtGui.QSpacerItem(10, 20,
                                       QtGui.QSizePolicy.MinimumExpanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.current_radio = QtGui.QRadioButton(Figures)
        self.current_radio.setObjectName(_fromUtf8("current_radio"))
        self.horizontalLayout.addWidget(self.current_radio)
        spacerItem1 = QtGui.QSpacerItem(5, 20,
                                        QtGui.QSizePolicy.MinimumExpanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.range_radio = QtGui.QRadioButton(Figures)
        self.range_radio.setObjectName(_fromUtf8("range_radio"))
        self.horizontalLayout.addWidget(self.range_radio)
        self.rangemin_spin = QtGui.QSpinBox(Figures)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.rangemin_spin.sizePolicy().hasHeightForWidth())
        self.rangemin_spin.setSizePolicy(sizePolicy)
        self.rangemin_spin.setMaximum(99999)
        self.rangemin_spin.setObjectName(_fromUtf8("rangemin_spin"))
        self.horizontalLayout.addWidget(self.rangemin_spin)
        self.label_2 = QtGui.QLabel(Figures)
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.horizontalLayout.addWidget(self.label_2)
        self.rangemax_spin = QtGui.QSpinBox(Figures)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.rangemax_spin.sizePolicy().hasHeightForWidth())
        self.rangemax_spin.setSizePolicy(sizePolicy)
        self.rangemax_spin.setMinimumSize(QtCore.QSize(10, 0))
        self.rangemax_spin.setMaximum(99999)
        self.rangemax_spin.setObjectName(_fromUtf8("rangemax_spin"))
        self.horizontalLayout.addWidget(self.rangemax_spin)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.tabWidget = QtGui.QTabWidget(Figures)
        self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
        self.tab_3 = QtGui.QWidget()
        self.tab_3.setObjectName(_fromUtf8("tab_3"))
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_3)
        self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
        self.dockWidget = QtGui.QDockWidget(self.tab_3)
        self.dockWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.dockWidget.setFeatures(QtGui.QDockWidget.DockWidgetFloatable
                                    | QtGui.QDockWidget.DockWidgetMovable)
        self.dockWidget.setObjectName(_fromUtf8("dockWidget"))
        self.dockWidgetContents = QtGui.QWidget()
        self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents"))
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.dockWidgetContents)
        self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
        self.gridLayout = QtGui.QGridLayout()
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.p2_scan_combo = QtGui.QComboBox(self.dockWidgetContents)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.p2_scan_combo.sizePolicy().hasHeightForWidth())
        self.p2_scan_combo.setSizePolicy(sizePolicy)
        self.p2_scan_combo.setObjectName(_fromUtf8("p2_scan_combo"))
        self.gridLayout.addWidget(self.p2_scan_combo, 0, 2, 1, 1)
        self.label_3 = QtGui.QLabel(self.dockWidgetContents)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_3.sizePolicy().hasHeightForWidth())
        self.label_3.setSizePolicy(sizePolicy)
        self.label_3.setMinimumSize(QtCore.QSize(10, 0))
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.gridLayout.addWidget(self.label_3, 0, 1, 1, 1)
        self.p1_scan_combo = QtGui.QComboBox(self.dockWidgetContents)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.p1_scan_combo.sizePolicy().hasHeightForWidth())
        self.p1_scan_combo.setSizePolicy(sizePolicy)
        self.p1_scan_combo.setObjectName(_fromUtf8("p1_scan_combo"))
        self.gridLayout.addWidget(self.p1_scan_combo, 0, 0, 1, 1)
        self.graphadd_button = QtGui.QPushButton(self.dockWidgetContents)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphadd_button.sizePolicy().hasHeightForWidth())
        self.graphadd_button.setSizePolicy(sizePolicy)
        self.graphadd_button.setMinimumSize(QtCore.QSize(20, 0))
        self.graphadd_button.setObjectName(_fromUtf8("graphadd_button"))
        self.gridLayout.addWidget(self.graphadd_button, 0, 3, 1, 1)
        self.verticalLayout_2.addLayout(self.gridLayout)
        self.graph_scan = MatplotlibWidget(self.dockWidgetContents)
        self.graph_scan.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.graph_scan.setObjectName(_fromUtf8("graph_scan"))
        self.verticalLayout_2.addWidget(self.graph_scan)
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
        self.pushButton_3 = QtGui.QPushButton(self.dockWidgetContents)
        self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
        self.horizontalLayout_3.addWidget(self.pushButton_3)
        self.apply_button = QtGui.QPushButton(self.dockWidgetContents)
        self.apply_button.setObjectName(_fromUtf8("apply_button"))
        self.horizontalLayout_3.addWidget(self.apply_button)
        spacerItem2 = QtGui.QSpacerItem(10, 20,
                                        QtGui.QSizePolicy.MinimumExpanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.pushButton = QtGui.QPushButton(self.dockWidgetContents)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.horizontalLayout_3.addWidget(self.pushButton)
        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
        self.dockWidget.setWidget(self.dockWidgetContents)
        self.verticalLayout_3.addWidget(self.dockWidget)
        self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
        self.tab_4 = QtGui.QWidget()
        self.tab_4.setObjectName(_fromUtf8("tab_4"))
        self.verticalLayout_5 = QtGui.QVBoxLayout(self.tab_4)
        self.verticalLayout_5.setObjectName(_fromUtf8("verticalLayout_5"))
        self.dockWidget_2 = QtGui.QDockWidget(self.tab_4)
        self.dockWidget_2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.dockWidget_2.setFeatures(QtGui.QDockWidget.DockWidgetFloatable
                                      | QtGui.QDockWidget.DockWidgetMovable)
        self.dockWidget_2.setObjectName(_fromUtf8("dockWidget_2"))
        self.dockWidgetContents_2 = QtGui.QWidget()
        self.dockWidgetContents_2.setObjectName(
            _fromUtf8("dockWidgetContents_2"))
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.dockWidgetContents_2)
        self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
        self.horizontalLayout_5 = QtGui.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
        self.label_4 = QtGui.QLabel(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_4.sizePolicy().hasHeightForWidth())
        self.label_4.setSizePolicy(sizePolicy)
        self.label_4.setMinimumSize(QtCore.QSize(10, 0))
        self.label_4.setObjectName(_fromUtf8("label_4"))
        self.horizontalLayout_5.addWidget(self.label_4)
        self.waterfall_scan_combo = QtGui.QComboBox(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.waterfall_scan_combo.sizePolicy().hasHeightForWidth())
        self.waterfall_scan_combo.setSizePolicy(sizePolicy)
        self.waterfall_scan_combo.setMinimumSize(QtCore.QSize(80, 0))
        self.waterfall_scan_combo.setObjectName(
            _fromUtf8("waterfall_scan_combo"))
        self.horizontalLayout_5.addWidget(self.waterfall_scan_combo)
        self.apply_waterfall_button = QtGui.QPushButton(
            self.dockWidgetContents_2)
        self.apply_waterfall_button.setObjectName(
            _fromUtf8("apply_waterfall_button"))
        self.horizontalLayout_5.addWidget(self.apply_waterfall_button)
        self.pushButton_4 = QtGui.QPushButton(self.dockWidgetContents_2)
        self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
        self.horizontalLayout_5.addWidget(self.pushButton_4)
        self.pushButton_5 = QtGui.QPushButton(self.dockWidgetContents_2)
        self.pushButton_5.setObjectName(_fromUtf8("pushButton_5"))
        self.horizontalLayout_5.addWidget(self.pushButton_5)
        self.verticalLayout_4.addLayout(self.horizontalLayout_5)
        self.gridLayout_2 = QtGui.QGridLayout()
        self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
        self.interp_check = QtGui.QCheckBox(self.dockWidgetContents_2)
        self.interp_check.setChecked(False)
        self.interp_check.setObjectName(_fromUtf8("interp_check"))
        self.gridLayout_2.addWidget(self.interp_check, 0, 2, 1, 1)
        self.ypts_edit = QtGui.QLineEdit(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.ypts_edit.sizePolicy().hasHeightForWidth())
        self.ypts_edit.setSizePolicy(sizePolicy)
        self.ypts_edit.setMinimumSize(QtCore.QSize(20, 0))
        self.ypts_edit.setObjectName(_fromUtf8("ypts_edit"))
        self.gridLayout_2.addWidget(self.ypts_edit, 0, 6, 1, 1)
        self.label_5 = QtGui.QLabel(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy)
        self.label_5.setObjectName(_fromUtf8("label_5"))
        self.gridLayout_2.addWidget(self.label_5, 0, 3, 1, 1)
        self.xpts_edit = QtGui.QLineEdit(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.xpts_edit.sizePolicy().hasHeightForWidth())
        self.xpts_edit.setSizePolicy(sizePolicy)
        self.xpts_edit.setMinimumSize(QtCore.QSize(20, 0))
        self.xpts_edit.setObjectName(_fromUtf8("xpts_edit"))
        self.gridLayout_2.addWidget(self.xpts_edit, 0, 4, 1, 1)
        self.label_6 = QtGui.QLabel(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_6.sizePolicy().hasHeightForWidth())
        self.label_6.setSizePolicy(sizePolicy)
        self.label_6.setObjectName(_fromUtf8("label_6"))
        self.gridLayout_2.addWidget(self.label_6, 0, 5, 1, 1)
        self.pushButton_2 = QtGui.QPushButton(self.dockWidgetContents_2)
        self.pushButton_2.setEnabled(True)
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.gridLayout_2.addWidget(self.pushButton_2, 0, 7, 1, 1)
        self.verticalLayout_4.addLayout(self.gridLayout_2)
        self.waterfall_layout = QtGui.QVBoxLayout()
        self.waterfall_layout.setObjectName(_fromUtf8("waterfall_layout"))
        self.widget = QtGui.QWidget(self.dockWidgetContents_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
                                       QtGui.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy)
        self.widget.setMinimumSize(QtCore.QSize(0, 0))
        self.widget.setObjectName(_fromUtf8("widget"))
        self.waterfall_layout.addWidget(self.widget)
        self.verticalLayout_4.addLayout(self.waterfall_layout)
        self.dockWidget_2.setWidget(self.dockWidgetContents_2)
        self.verticalLayout_5.addWidget(self.dockWidget_2)
        self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
        self.verticalLayout.addWidget(self.tabWidget)

        self.retranslateUi(Figures)
        self.tabWidget.setCurrentIndex(1)
        QtCore.QObject.connect(self.apply_button,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.ApplyFigure)
        QtCore.QObject.connect(self.graphadd_button,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.GraphAdd)
        QtCore.QObject.connect(self.pushButton,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.Clear)
        QtCore.QObject.connect(
            self.graph_scan,
            QtCore.SIGNAL(_fromUtf8("customContextMenuRequested(QPoint)")),
            Figures.ApplyFigure)
        QtCore.QObject.connect(self.pushButton_3,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.Refresh)
        QtCore.QObject.connect(self.apply_waterfall_button,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.ApplyWaterfall)
        QtCore.QObject.connect(self.pushButton_4,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.FileOpen)
        QtCore.QObject.connect(self.pushButton_5,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.FileSave)
        QtCore.QObject.connect(self.pushButton_2,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               Figures.Clear3D)
        QtCore.QMetaObject.connectSlotsByName(Figures)

    def retranslateUi(self, Figures):
        Figures.setWindowTitle(_translate("Figures", "Excel", None))
        Figures.setTitle(_translate("Figures", "Figures Output", None))
        self.allfiles_check.setText(_translate("Figures", "All Files", None))
        self.label.setText(_translate("Figures", "Datasets:", None))
        self.all_radio.setText(_translate("Figures", "All", None))
        self.current_radio.setText(_translate("Figures", "Current", None))
        self.range_radio.setText(_translate("Figures", "Range:", None))
        self.label_2.setText(_translate("Figures", "to", None))
        self.dockWidget.setWindowTitle(
            _translate("Figures", "Scan parameters", None))
        self.label_3.setText(_translate("Figures", "vs.", None))
        self.graphadd_button.setText(_translate("Figures", "Add", None))
        self.pushButton_3.setText(_translate("Figures", "Refresh", None))
        self.apply_button.setText(_translate("Figures", "Apply", None))
        self.pushButton.setText(_translate("Figures", "Clear", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3),
                                  _translate("Figures", "Scan", None))
        self.dockWidget_2.setWindowTitle(
            _translate("Figures", "Waterfall plot", None))
        self.label_4.setText(_translate("Figures", "vs.", None))
        self.apply_waterfall_button.setText(
            _translate("Figures", "Apply", None))
        self.pushButton_4.setText(_translate("Figures", "Open", None))
        self.pushButton_5.setText(_translate("Figures", "Save", None))
        self.interp_check.setText(_translate("Figures", "Interpolate", None))
        self.ypts_edit.setText(_translate("Figures", "100", None))
        self.label_5.setText(_translate("Figures", "x pts:", None))
        self.xpts_edit.setText(_translate("Figures", "100", None))
        self.label_6.setText(_translate("Figures", "y pts:", None))
        self.pushButton_2.setText(_translate("Figures", "Clear", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4),
                                  _translate("Figures", "Waterfall", None))