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))
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])
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))
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))