Exemplo n.º 1
0
    def __init__(self, *args, **kwargs):
        TaurusWidget.__init__(self, *args)

        fileModel = kwargs.get('fileModel', None)
        if fileModel is None:
            fileModel = HDF5Widget.FileModel()
        self.__fileModel = fileModel

        self.treeWidget = HDF5Widget.HDF5Widget(self.__fileModel)
        self.treeWidget.setSizePolicy(
            Qt.QSizePolicy(Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Expanding))
        #        self.infoWidget = HDF5Info.HDF5InfoWidget()
        self.__previewStack = Qt.QStackedWidget()
        self.__currentPreview = None

        # layout
        self.__splitter = Qt.QSplitter()
        self.__splitter.setOrientation(Qt.Qt.Vertical)
        self.__splitter.addWidget(self.treeWidget)
        #        self.__splitter.addWidget(self.infoWidget)
        self.__splitter.addWidget(self.__previewStack)
        self.setLayout(Qt.QVBoxLayout())
        self.layout().addWidget(self.__splitter)

        # Actions
        self.setContextMenuPolicy(Qt.Qt.ActionsContextMenu)
        self.openFileAction = Qt.QAction(Qt.QIcon.fromTheme("document-open"),
                                         "Open Data File...", self)
        self.togglePreviewAction = Qt.QAction(Qt.QIcon("actions:view.svg"),
                                              "Show/Hide preview", self)
        self.togglePreviewAction.setCheckable(True)
        self.togglePreviewAction.setChecked(True)
        self.addActions([self.openFileAction, self.togglePreviewAction])

        # Toolbar
        self._toolbar = Qt.QToolBar("NeXus browser toolbar")
        self._toolbar.setIconSize(Qt.QSize(16, 16))
        self._toolbar.setFloatable(False)
        self._toolbar.addActions(
            [self.openFileAction, self.togglePreviewAction])
        self.layout().setMenuBar(self._toolbar)

        # connections
        self.__fileModel.sigFileAppended.connect(self.treeWidget.fileAppended)
        self.treeWidget.sigHDF5WidgetSignal.connect(self.onHDF5WidgetSignal)
        self.openFileAction.triggered.connect(
            partial(self.openFile, fname=None))
        self.togglePreviewAction.toggled.connect(
            self.__previewStack.setVisible)

        # configuration
        self.registerConfigProperty(self.togglePreviewAction.isChecked,
                                    self.togglePreviewAction.setChecked,
                                    'showPreview')
Exemplo n.º 2
0
 def _loadIniFromHdf5(self, filename):
     self.__hdf5Dialog = qt.QDialog()
     self.__hdf5Dialog.setWindowTitle('Select the fit configuration dataset by a double click')
     self.__hdf5Dialog.mainLayout = qt.QVBoxLayout(self.__hdf5Dialog)
     self.__hdf5Dialog.mainLayout.setContentsMargins(0, 0, 0, 0)
     self.__hdf5Dialog.mainLayout.setSpacing(0)
     fileModel = HDF5Widget.FileModel()
     fileView = HDF5Widget.HDF5Widget(fileModel)
     with h5py.File(filename, "r") as hdfFile:
         fileModel.appendPhynxFile(hdfFile, weakreference=True)
         fileView.sigHDF5WidgetSignal.connect(self._hdf5WidgetSlot)
         self.__hdf5Dialog.mainLayout.addWidget(fileView)
         self.__hdf5Dialog.resize(400, 200)
         ret = self.__hdf5Dialog.exec_()
         if ret:
             initxt = hdfFile[self.__fitConfigDataset][()]
         else:
             initxt = None
     return initxt