コード例 #1
0
    def __init__(self):
        QtGui.QWidget.__init__(self)

        plotLayout = QtGui.QHBoxLayout()

        self.plot = PlotView()

        parameterLayout = QtGui.QVBoxLayout()
        self.plotList = QtGui.QListWidget(self)
        self.plotList.setMaximumWidth(150)
        self.plotList.setMinimumWidth(150)

        self.plotDataPanel = PlotParameterConfigurationPanel(self, 150)
        parameterLayout.addWidget(self.plotList)
        parameterLayout.addWidget(self.plotDataPanel)

        self.connect(self.plotList, QtCore.SIGNAL('currentItemChanged(QListWidgetItem *, QListWidgetItem *)'),
                     self.select)
        ContentModel.modelConnect('initialized()', self.updateList)

        #todo: listen to ensemble changes!


        self.plotDataFetcher = PlotDataFetcher()
        self.connect(self.plotDataFetcher, QtCore.SIGNAL('dataChanged()'), self.drawPlot)
        self.plotContextDataFetcher = PlotContextDataFetcher()

        plot_view_layout = QtGui.QGridLayout()

        plot_view_layout.addWidget(self.plot, 0, 0, 1, 1)

        self.h_zoom_slider = ZoomSlider()
        self.connect(self.h_zoom_slider, QtCore.SIGNAL('zoomValueChanged(float, float)'), self.plot.setXZoomFactors)

        self.v_zoom_slider = ZoomSlider(horizontal=False)
        self.connect(self.v_zoom_slider, QtCore.SIGNAL('zoomValueChanged(float, float)'), self.plot.setYZoomFactors)

        plot_view_layout.addWidget(self.h_zoom_slider, 1, 0, 1, 1)
        plot_view_layout.addWidget(self.v_zoom_slider, 0, 1, 1, 1)

        plotLayout.addLayout(parameterLayout)
        plotLayout.addLayout(plot_view_layout)

        self.plotViewSettings = PlotViewSettingsPanel(plotView=self.plot, width=250)
        self.connect(self.plotViewSettings, QtCore.SIGNAL('comparisonCaseSelected(String)'), self.plotDataFetcher.updateComparisonFS)
        plotLayout.addWidget(self.plotViewSettings)
        
        self.setLayout(plotLayout)

        self.connect(self.plot.plot_settings, QtCore.SIGNAL('plotSettingsChanged(PlotSettings)'), self.fetchSettings)

        ContentModel.modelConnect('casesUpdated()', self.updateList)