Example #1
0
	def displayObjectContents(self,d):
		"""
		The contents of the dictionary 'd' are displayed in a new QWindow
		
		"""
		self.tree = pg.DataTreeWidget(data=d)
		self.tree.show()
		self.tree.setWindowTitle('Data')
		self.tree.resize(600,600)
 def get_fitting_tree(self, rows, max_points=12):
     xf_list = self.get_xf_list(max_points, rows)
     result = {}
     for x in xf_list:
         result[x.label] = x.get_fitting_info(mode='g2_fitting')
     tree = pg.DataTreeWidget(data=result)
     tree.setWindowTitle('fitting summary')
     tree.resize(1024, 800)
     return tree
    def __init__(self, chart, ctrl):
        #QtGui.QWidget.__init__(self)
        dockarea.DockArea.__init__(self)
        self.chart = chart
        self.ctrl = ctrl
        self.hoverItem = None
        #self.setMinimumWidth(250)
        #self.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding))

        #self.ui = FlowchartTemplate.Ui_Form()
        #self.ui.setupUi(self)

        ## build user interface (it was easier to do it here than via developer)
        self.view = FlowchartGraphicsView.FlowchartGraphicsView(self)
        self.viewDock = dockarea.Dock('view', size=(1000, 600))
        self.viewDock.addWidget(self.view)
        self.viewDock.hideTitleBar()
        self.addDock(self.viewDock)

        self.hoverText = QtGui.QTextEdit()
        self.hoverText.setReadOnly(True)
        self.hoverDock = dockarea.Dock('Hover Info', size=(1000, 20))
        self.hoverDock.addWidget(self.hoverText)
        self.addDock(self.hoverDock, 'bottom')

        self.selInfo = QtGui.QWidget()
        self.selInfoLayout = QtGui.QGridLayout()
        self.selInfo.setLayout(self.selInfoLayout)
        self.selDescLabel = QtGui.QLabel()
        self.selNameLabel = QtGui.QLabel()
        self.selDescLabel.setWordWrap(True)
        self.selectedTree = pg.DataTreeWidget()
        #self.selectedTree.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
        #self.selInfoLayout.addWidget(self.selNameLabel)
        self.selInfoLayout.addWidget(self.selDescLabel)
        self.selInfoLayout.addWidget(self.selectedTree)
        self.selDock = dockarea.Dock('Selected Node', size=(1000, 200))
        self.selDock.addWidget(self.selInfo)
        self.addDock(self.selDock, 'bottom')

        self._scene = self.view.scene()
        self._viewBox = self.view.viewBox()
        #self._scene = QtGui.QGraphicsScene()
        #self._scene = FlowchartGraphicsView.FlowchartGraphicsScene()
        #self.view.setScene(self._scene)

        self.buildMenu()
        #self.ui.addNodeBtn.mouseReleaseEvent = self.addNodeBtnReleased

        self._scene.selectionChanged.connect(self.selectionChanged)
        self._scene.sigMouseHover.connect(self.hoverOver)
Example #4
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.expt = None

        self.layout = QtGui.QGridLayout()
        self.setLayout(self.layout)

        self.info_tree = pg.DataTreeWidget()
        self.layout.addWidget(self.info_tree, self.layout.rowCount(), 0)

        self.biocytin_btn = QtGui.QPushButton('biocytin image...')
        self.biocytin_btn.clicked.connect(self.show_biocytin)
        self.layout.addWidget(self.biocytin_btn, self.layout.rowCount(), 0)
Example #5
0
    def get_pg_tree(self):
        _, data = self.load()
        for key, val in data.items():
            if isinstance(val, np.ndarray):
                if val.size > 4096:
                    data[key] = 'data size is too large'
                # suqeeze one-element array
                if val.size == 1:
                    data[key] = float(val)

        data['type'] = self.type
        data['label'] = self.label

        tree = pg.DataTreeWidget(data=data)
        tree.setWindowTitle(self.fname)
        tree.resize(600, 800)
        return tree
Example #6
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.resize(800, 800)

        self.layout = QtGui.QGridLayout()
        self.setLayout(self.layout)

        self.message_text = QtGui.QTextBrowser()
        self.message_text.setOpenExternalLinks(True)
        self.layout.addWidget(self.message_text, 0, 0)

        self.info_tree = pg.DataTreeWidget()
        self.info_tree.setColumnHidden(1, True)
        self.layout.addWidget(self.info_tree, 0, 1)

        self.submit_btn = QtGui.QPushButton('submit!')
        self.submit_btn.clicked.connect(self.submit)
        self.layout.addWidget(self.submit_btn, 1, 1)
Example #7
0
    def __init__(self, mol, parent):
        super(TreeWindow, self).__init__(parent)
        self.setWindowTitle('MolViewer :: Info table :: {:s}'.format(
            mol.filename))

        data = moleculeinfo(mol)
        tree = pg.DataTreeWidget()
        tree.setData(data, hideRoot=True)

        closebutton = QtGui.QPushButton("&Close")
        closebutton.setFocus()
        closebutton.clicked.connect(self.close)

        buttonbox = QtGui.QDialogButtonBox()
        buttonbox.addButton(closebutton, QtGui.QDialogButtonBox.ActionRole)

        verticalLayout = QtGui.QVBoxLayout(self)
        verticalLayout.addWidget(tree)
        verticalLayout.addWidget(buttonbox)
Example #8
0
    def setupUi(self):
        self.dockWidgets = []
        self.dtw = pg.DataTreeWidget()

        self.form = Ui_MainWindow()
        self.form.setupUi(self)
        self.addMovableWidget(self.dtw, 'Image Info')
        self.imgview = pg.ImageView()
        self.form.tabWidget.addTab(self.imgview, "Image")
        #        self.form.tabWidget.addTab(self.imgview, "Monitor")

        self.treeImages = CalcTreeWidget()
        self.tabWidgets = [self.imgview]
        self.measurementObject = None
        self.addMovableWidget(self.treeImages, 'Images')
        self.newItems = CalcTreeWidgetItem(self.treeImages, ['New', ''],
                                           kind='folder')

        self.fromFileItems = CalcTreeWidgetItem(self.treeImages,
                                                ['From File', 'f'],
                                                kind='folder')
        self.treeImages.currentItemChanged.connect(self.changeActiveImage)
        self.form.actionRecalc.triggered.connect(self.treeImages.recalc)
        self.form.actionAddSumNode.triggered.connect(
            lambda: self.treeImages.addFunctionNode(
                lambda a: np.sum(a, 0) / len(a), 'sum'))
        self.form.actionAddPolarizationNode.triggered.connect(
            lambda: self.treeImages.addFunctionNode(polarization,
                                                    'polarization'))
        self.form.actionAutoLevel.triggered.connect(self.autoLevel)

        def sleepAndRaise():
            time.sleep(5)
            raise Exception

        self.form.actionSleep.triggered.connect(sleepAndRaise)
        self.form.actionAdd_File.triggered.connect(self.loadImageFromFile)
        self.form.actionSave.triggered.connect(self.saveImageToFile)
        self.imgview.setColorMap(cmap)

        self.console = Console()
        self.addTabWidget(self.console, 'Measurement')
    def __init__(self, title=None):
        self.pw = pg.GraphicsLayoutWidget()
        self.pw.addLabel(title)
        self.in_plt = self.pw.addPlot(row=1,
                                      col=0,
                                      title='Inhibitory Pulse QC')
        self.ex_plt = self.pw.addPlot(row=2,
                                      col=0,
                                      title='Excitatory Pulse QC')
        self.qc_text = pg.DataTreeWidget()
        self.qc_text.setHeaderLabels(['QC failures', 'type', 'value'])
        self.console = pg.console.ConsoleWidget()

        self.widget = pg.QtGui.QSplitter(pg.QtCore.Qt.Vertical)
        self.widget.addWidget(self.pw)
        self.widget.addWidget(self.qc_text)
        self.widget.addWidget(self.console)
        self.widget.resize(1000, 900)
        self.widget.setSizes([800, 200])
        self.widget.show()

        self.trace_color = {True: 'g', False: 'r', None: 'w'}
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui, QtWidgets
import numpy as np

app = QtWidgets.QApplication([])
d = {
    'list1':
    [1, 2, 3, 4, 5, 6, {
        'nested1': 'aaaaa',
        'nested2': 'bbbbb'
    }, "seven"],
    'dict1': {
        'x': 1,
        'y': 2,
        'z': 'three'
    },
    'array1 (20x20)': np.ones((10, 10))
}

tree = pg.DataTreeWidget(data=d)
tree.show()
tree.setWindowTitle('pyqtgraph example: DataTreeWidget')
tree.resize(600, 600)

## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtWidgets.QApplication.instance().exec_()
Example #11
0
w1l = pg.QtGui.QGridLayout()
w1.setLayout(w1l)
vsplit.addWidget(w1)

# Button for loading .dat file
load_btn = pg.QtGui.QPushButton("Load...")
w1l.addWidget(load_btn, 0, 0)

# Tree for displaying .pul structure
tree = pg.QtGui.QTreeWidget()
tree.setHeaderLabels(['Node', 'Label'])
tree.setColumnWidth(0, 200)
w1l.addWidget(tree, 1, 0)

# Tree for displaying metadata for selected node
data_tree = pg.DataTreeWidget()
vsplit.addWidget(data_tree)

# Plot for displaying trace data
plot = pg.PlotWidget()
hsplit.addWidget(plot)

# Resize and show window
hsplit.setStretchFactor(0, 400)
hsplit.setStretchFactor(1, 600)
win.resize(1200, 800)
win.show()


def load_clicked():
	# Display a file dialog to select a .dat file
Example #12
0
    def makeLayout(self):
        """ Generate the GUI layout """

        layout = qg.QGridLayout()  # create a grid for subWidgets
        layout.setSpacing(10)
        self.setLayout(layout)

        font = qg.QFont()
        font.setBold(True)
        font.setPixelSize(15)

        # Define items
        self.importFileBtn = qw.QPushButton('Import File', self)
        self.importFileBtn.clicked.connect(self.importFile)
        layout.addWidget(self.importFileBtn, 18, 1, 1, 7)

        self.saveasCSVBtn = qw.QPushButton('Save as CSV', self)
        self.saveasCSVBtn.clicked.connect(self.saveasCSV)
        layout.addWidget(self.saveasCSVBtn, 16, 24, 1, 5)

        self.saveFigure = qw.QPushButton('Save Figure', self)
        #self.saveFigure.resize(self.clrButton.sizeHint())
        self.saveFigure.clicked.connect(self.nofunctionyet)
        layout.addWidget(self.saveFigure, 18, 24, 1, 5)

        self.nameTxtbox = qw.QLabel('Series Name:', self)
        self.nameTxtbox.setFont(font)
        layout.addWidget(self.nameTxtbox, 1, 1, 1, 7)
        self.nameTxtbox = qw.QLineEdit(self)
        self.nameTxtbox.setPlaceholderText('file name')
        self.nameTxtbox.editingFinished.connect(self.nofunctionyet)
        layout.addWidget(self.nameTxtbox, 2, 1, 1, 7)

        self.metadataTree_name = qw.QLabel('Metadata:', self)
        #        self.metadataTree_name.setFont(font)
        #        layout.addWidget(self.metadataTree_name, 3, 1)
        self.metadataTree = pg.DataTreeWidget()
        #self.metadataTree.setHeaderItem()
        #        layout.addWidget(self.metadataTree, 4, 1, 13, 7)

        self.scanListTree_label = qw.QLabel('Scans:', self)
        self.scanListTree_label.setFont(font)
        layout.addWidget(self.scanListTree_label, 3, 1)
        self.scanListTree = pg.parametertree.ParameterTree()
        #self.metadataTree.setHeaderItem()
        layout.addWidget(self.scanListTree, 4, 1, 13, 7)

        self.plotWidget_name = qw.QLabel('Plot', self)
        self.plotWidget_name.setFont(font)
        layout.addWidget(self.plotWidget_name, 1, 9)
        self.setPlotWidget()
        layout.addWidget(self.plotWidget, 2, 9, 13, 20)

        # plot modification buttons
        self.modifyBox_name = qw.QLabel('Modify', self)
        layout.addWidget(self.modifyBox_name, 15, 10)
        self.modifyBox_name.setFont(font)

        self.flipXcb = qw.QPushButton('Flip x', self)
        self.flipXcb.clicked.connect(self.flipX)
        layout.addWidget(self.flipXcb, 16, 10)

        self.remDCcb = qw.QPushButton('Remove DC', self)
        self.remDCcb.clicked.connect(self.removeDC)
        layout.addWidget(self.remDCcb, 17, 10)

        self.shiftXcb = qw.QPushButton('Set Time Zero', self)
        self.shiftXcb.clicked.connect(self.setTimeZero)
        layout.addWidget(self.shiftXcb, 18, 10)

        self.timeZero = 0
        self.shiftTimeZero_input = pg.SpinBox(self)
        self.shiftTimeZero_input.setMinimumSize(1, 25)
        #        self.shiftTimeZero_input.setValidator(QtGui.QDoubleValidator())
        #self.shiftTimeZero_input.textChanged.connect(self.setShiftTimeZero)
        self.shiftTimeZero_input.valueChanged.connect(self.setTimeZero)
        layout.addWidget(self.shiftTimeZero_input, 18, 11, 1, 2)

        # Filter

        #        self.filterBox = QGroupBox('filter', self)
        #        layout.addWidget(self.filterBox, 15, 17, 3, 3)
        #        self.makeFilterBox(layout=layout)
        #
        #    def makeFilterBox(self, layout):

        self.filterBox_name = qw.QLabel('Filter', self)
        #        self.filterBox_name.setFont(font)
        layout.addWidget(self.filterBox_name, 15, 17)
        self.filterLowPassFreq_name = qw.QLabel('Frequency [THz]', self)
        layout.addWidget(self.filterLowPassFreq_name, 16, 17)
        self.filterLowPassFreq = pg.SpinBox(self, dec=True)
        self.filterLowPassFreq.setMinimumSize(1, 25)
        #self.filterLowPassFreq.setPlaceholderText('freq')
        self.filterLowPassFreq.valueChanged.connect(self.applyFilter)
        layout.addWidget(self.filterLowPassFreq, 16, 18, 1, 3)