示例#1
0
class ExampleDialog(ImageDialog):
    def __init__(
        self,
        wintitle=_("Example dialog box"),
        icon="guidata.svg",
        options=dict(show_contrast=True),
        edit=False,
    ):
        self.filter_gbox = None
        self.data = None
        self.item = None
        super(ExampleDialog, self).__init__(
            wintitle=wintitle, icon=icon, toolbar=True, edit=edit, options=options
        )
        self.resize(600, 600)

    def register_tools(self):
        opentool = self.add_tool(OpenImageTool)
        opentool.SIG_OPEN_FILE.connect(self.open_image)
        self.register_all_image_tools()
        self.activate_default_tool()

    def create_plot(self, options):
        self.filter_gbox = DataSetEditGroupBox(_("Filter parameters"), FilterParam)
        self.filter_gbox.setEnabled(False)
        self.filter_gbox.SIG_APPLY_BUTTON_CLICKED.connect(self.apply_filter)
        self.plot_layout.addWidget(self.filter_gbox, 0, 0)
        self.param_gbox = DataSetShowGroupBox(_("Image parameters"), ImageParam)
        self.plot_layout.addWidget(self.param_gbox, 0, 1)

        options = dict(title=_("Image title"), zlabel=_("z-axis scale label"))
        ImageDialog.create_plot(self, options, 1, 0, 1, 0)

    def open_image(self, filename):
        """Opening image *filename*"""
        self.data = io.imread(filename, to_grayscale=True)
        self.show_data(self.data)
        param = ImageParam()
        param.title = filename
        param.height, param.width = self.data.shape
        update_dataset(self.param_gbox.dataset, param)
        self.param_gbox.get()
        self.filter_gbox.setEnabled(True)

    def show_data(self, data):
        plot = self.get_plot()
        if self.item is not None:
            self.item.set_data(data)
        else:
            self.item = make.image(data, colormap="gray")
            plot.add_item(self.item, z=0)
        plot.set_active_item(self.item)
        plot.replot()

    def apply_filter(self):
        param = self.filter_gbox.dataset
        filterfunc = getattr(scipy.ndimage, param.name)
        data = filterfunc(self.data, param.size)
        self.show_data(data)
示例#2
0
class ImageListWithProperties(QSplitter):
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.imagelist = QListWidget(self)
        self.addWidget(self.imagelist)
        self.properties = DataSetEditGroupBox(_("Properties"), ImageParam)
        self.properties.setEnabled(False)
        self.addWidget(self.properties)
示例#3
0
class ImageListWithProperties(QSplitter):
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.imagelist = QListWidget(self)
        self.addWidget(self.imagelist)
        self.properties = DataSetEditGroupBox(_("Properties"), ImageParam)
        self.properties.setEnabled(False)
        self.addWidget(self.properties)
示例#4
0
class DAQParamsProperties(QSplitter):
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        # self.lineList = QListWidget(self)
        # self.addWidget(self.lineList)
        self.properties = DataSetEditGroupBox(_("Properties"), DAQParam)
        self.properties.setEnabled(True)
        self.addWidget(self.properties)
示例#5
0
class ExampleDialog(ImageDialog):
    def __init__(self, wintitle=_("Example dialog box"),
                 icon="guidata.svg", options=dict(show_contrast=True),
                 edit=False):
        self.filter_gbox = None
        self.data = None
        self.item = None
        super(ExampleDialog, self).__init__(wintitle=wintitle, icon=icon,
                                            toolbar=True, edit=edit,
                                            options=options)        
        self.resize(600, 600)
        
    def register_tools(self):
        opentool = self.add_tool(OpenImageTool)
        self.connect(opentool, SIGNAL("openfile(QString*)"), self.open_image)
        self.register_all_image_tools()
        self.activate_default_tool()

    def create_plot(self, options):
        self.filter_gbox = DataSetEditGroupBox(_("Filter parameters"),
                                               FilterParam)
        self.filter_gbox.setEnabled(False)
        self.connect(self.filter_gbox, SIGNAL("apply_button_clicked()"),
                     self.apply_filter)
        self.plot_layout.addWidget(self.filter_gbox, 0, 0)
        self.param_gbox = DataSetShowGroupBox(_("Image parameters"), ImageParam)
        self.plot_layout.addWidget(self.param_gbox, 0, 1)
        
        options = dict(title=_("Image title"), zlabel=_("z-axis scale label"))
        ImageDialog.create_plot(self, options, 1, 0, 1, 0)
        
    def open_image(self, filename):
        """Opening image *filename*"""
        self.data = io.imread(filename, to_grayscale=True)
        self.show_data(self.data)
        param = ImageParam()
        param.title = filename
        param.height, param.width = self.data.shape
        update_dataset(self.param_gbox.dataset, param)
        self.param_gbox.get()
        self.filter_gbox.setEnabled(True)
        
    def show_data(self, data):
        plot = self.get_plot()
        if self.item is not None:
            self.item.set_data(data)
        else:
            self.item = make.image(data, colormap="gray")
            plot.add_item(self.item, z=0)
        plot.set_active_item(self.item)
        plot.replot()
        
    def apply_filter(self):
        param = self.filter_gbox.dataset
        filterfunc = getattr(scipy.ndimage, param.name)
        data = filterfunc(self.data, param.size)
        self.show_data(data)
示例#6
0
class ImageListWithProperties(QSplitter):
    # Define View的部分
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        # List Widget
        self.csvlist = QListWidget(self)
        self.csvlist.setContextMenuPolicy(Qt.ActionsContextMenu)

        plotCSV = QAction(self)
        plotCSV.setText("Plot")
        plotCSV.triggered.connect(self.plotCSV)
        delete = QAction(self)
        delete.setText("Remove")
        delete.triggered.connect(self.removeItem)
        extractCSV = QAction(self)
        extractCSV.setText("Extract to Arrays")
        extractCSV.triggered.connect(self.extractArray)
        self.csvlist.addAction(plotCSV)
        self.csvlist.addAction(extractCSV)
        self.csvlist.addAction(delete)

        self.addWidget(self.csvlist)

        # Properties widget
        self.properties = DataSetEditGroupBox(_("參數(Properties)"), CsvParam)
        self.properties.setEnabled(False)
        self.addWidget(self.properties)

    def plotCSV(self):
        self.emit(SIGNAL("PLOT"))

    def removeItem(self):
        self.emit(SIGNAL("REMOVE"))

    def extractArray(self):
        self.emit(SIGNAL("EXTRACT_ARRAY"))
示例#7
0
class ArrayListWithProperties(QSplitter):
    # Define View的部分
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        # List Widget
        self.arraylist = QListWidget(self)
        self.arraylist.setContextMenuPolicy(Qt.ActionsContextMenu)

        newArray = QAction(self)
        newArray.setText("Paste Array (no header name)")
        newArray.triggered.connect(self.pasteArray)
        newArrayWithName = QAction(self)
        newArrayWithName.setText("Paste Array (with header name)")
        newArrayWithName.triggered.connect(self.pasteArrayWithName)
        plotArray = QAction(self)
        plotArray.setText("Plot Array")
        plotArray.triggered.connect(self.plotArray)
        modifyArray = QAction(self)
        modifyArray.setText("Modify Array(Calibration)")
        modifyArray.triggered.connect(self.modifyArray)
        plotScatter = QAction(self)
        plotScatter.setText("Plot Scatter")
        plotScatter.triggered.connect(self.plotScatter)
        plotHist = QAction(self)
        plotHist.setText("Plot Histogram")
        plotHist.triggered.connect(self.plotHist)
        delete = QAction(self)
        delete.setText("Remove")
        delete.triggered.connect(self.removeItem)
        curveDialog = QAction(self)
        curveDialog.setText("Open Curve Dialog")
        curveDialog.triggered.connect(self.openCurveDialog)
        self.arraylist.addAction(newArray)
        self.arraylist.addAction(newArrayWithName)
        self.arraylist.addAction(plotArray)
        self.arraylist.addAction(plotScatter)
        self.arraylist.addAction(plotHist)
        self.arraylist.addAction(modifyArray)
        self.arraylist.addAction(curveDialog)
        self.arraylist.addAction(delete)

        self.addWidget(self.arraylist)

        # Properties widget
        self.properties = DataSetEditGroupBox(_("參數(Properties)"), CsvParam)
        self.properties.setEnabled(False)
        self.addWidget(self.properties)

    def pasteArray(self):
        self.emit(SIGNAL("PASTE_NO_NAME"))

    def pasteArrayWithName(self):
        self.emit(SIGNAL("PASTE_WITH_NAME"))

    def plotHist(self):
        self.emit(SIGNAL("PLOT_HISTOGRAM"))

    def plotArray(self):
        self.emit(SIGNAL("PLOT"))

    def modifyArray(self):
        self.emit(SIGNAL("MODIFY_ARRAY"))

    def plotScatter(self):
        self.emit(SIGNAL("PLOT_SCATTER"))

    def removeItem(self):
        self.emit(SIGNAL("REMOVE"))

    def openCurveDialog(self):
        self.emit(SIGNAL("OPEN_CURVEDIALOG"))