Beispiel #1
0
    def export(self, fileName=None):
        if fileName is None:
            filter = [
                "*." + str(f)
                for f in QtGui.QImageWriter.supportedImageFormats()
            ]
            preferred = ['*.png', '*.tif', '*.jpg']
            for p in preferred[::-1]:
                if p in filter:
                    filter.remove(p)
                    filter.insert(0, p)
            self.fileSaveDialog(filter=filter)
            return

        targetRect = QtCore.QRect(0, 0, self.params['width'],
                                  self.params['height'])
        sourceRect = self.getSourceRect()
        #self.png = QtGui.QImage(targetRect.size(), QtGui.QImage.Format_ARGB32)
        #self.png.fill(pyqtgraph.mkColor(self.params['background']))
        bg = np.empty((self.params['width'], self.params['height'], 4),
                      dtype=np.ubyte)
        color = self.params['background']
        bg[:, :, 0] = color.blue()
        bg[:, :, 1] = color.green()
        bg[:, :, 2] = color.red()
        bg[:, :, 3] = color.alpha()
        self.png = pg.makeQImage(bg, alpha=True)
        painter = QtGui.QPainter(self.png)
        try:
            self.setExportMode(
                True, {
                    'antialias': self.params['antialias'],
                    'background': self.params['background']
                })
            painter.setRenderHint(QtGui.QPainter.Antialiasing,
                                  self.params['antialias'])
            self.getScene().render(painter, QtCore.QRectF(targetRect),
                                   sourceRect)
        finally:
            self.setExportMode(False)
        self.png.save(fileName)
        painter.end()
Beispiel #2
0
 def eventFilter(self, source, event):
     # do not hide menubar when menu shown
     if QtGui.qApp.activePopupWidget() is None:
         if event.type() == QtCore.QEvent.MouseMove:
             if self.menuBar().isHidden():
                 rect = self.geometry()
                 # set mouse-sensitive zone
                 rect.setHeight(25)
                 if rect.contains(event.globalPos()):
                     self.menuBar().show()
             else:
                 rect = QtCore.QRect(
                     self.menuBar().mapToGlobal(QtCore.QPoint(0, 0)),
                     self.menuBar().size(),
                 )
                 if not rect.contains(event.globalPos()):
                     self.menuBar().hide()
         elif event.type() == QtCore.QEvent.Leave and source is self:
             self.menuBar().hide()
     return QtGui.QMainWindow.eventFilter(self, source, event)
Beispiel #3
0
    def registerCmap(self, cmapNames):
        """ Add matplotlib cmaps to the GradientEditors context menu"""
        self.gradientEditorItem.menu.addSeparator()
        savedLength = self.gradientEditorItem.length
        self.gradientEditorItem.length = 100

        # iterate over the list of cmap names and check if they're avaible in
        # MPL
        for cmapName in cmapNames:
            if not hasattr(matplotlib.cm, cmapName):
                print('[MplCmapImageView] Unknown cmap name: \'{}\'. Your '
                      'Matplotlib installation might be '
                      'outdated.'.format(cmapName))
            else:
                # create a Dictionary just as the one at the top of
                # GradientEditorItem.py
                cmap = getattr(matplotlib.cm, cmapName)
                self.mplCmaps[cmapName] = {
                    'ticks': cmapToColormap(cmap),
                    'mode': 'rgb'
                }

                # Create the menu entries
                # The following code is copied from
                # pyqtgraph.ImageView.__init__() ...
                px = QtGui.QPixmap(100, 15)
                p = QtGui.QPainter(px)
                self.gradientEditorItem.restoreState(self.mplCmaps[cmapName])
                grad = self.gradientEditorItem.getGradient()
                brush = QtGui.QBrush(grad)
                p.fillRect(QtCore.QRect(0, 0, 100, 15), brush)
                p.end()
                label = QtGui.QLabel()
                label.setPixmap(px)
                label.setContentsMargins(1, 1, 1, 1)
                act = QtGui.QWidgetAction(self.gradientEditorItem)
                act.setDefaultWidget(label)
                act.triggered.connect(self.cmapClicked)
                act.name = cmapName
                self.gradientEditorItem.menu.addAction(act)
        self.gradientEditorItem.length = savedLength
Beispiel #4
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1150, 699)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.graphicsView = GraphicsLayoutWidget(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(180, 10, 931, 651))
        self.graphicsView.setObjectName("graphicsView")
        self.ts_plots = [
            self.graphicsView.addPlot(row=i,
                                      col=0,
                                      colspan=2,
                                      title='Channel %d' % i,
                                      labels={'left': 'uV'})
            for i in range(1, 9)
        ]

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(10, 500, 131, 41))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(10, 390, 131, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(10, 60, 141, 41))
        self.pushButton_3.setObjectName("pushButton_3")
        self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
        self.lcdNumber.setGeometry(QtCore.QRect(20, 250, 111, 61))
        self.lcdNumber.setSmallDecimalPoint(True)
        self.lcdNumber.setDigitCount(3)
        self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
        self.lcdNumber.setObjectName("lcdNumber")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(100, 140, 61, 41))
        self.label.setObjectName("label")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(20, 140, 71, 41))
        self.textEdit.setObjectName("textEdit")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Beispiel #5
0
def test_setRect():    
    def assert_equal_transforms(tr1, tr2):
        dic = { # there seems to be no easy way to get the matrix in one call:
            'tr11': ( tr1.m11(), tr2.m11() ),
            'tr12': ( tr1.m12(), tr2.m12() ),
            'tr13': ( tr1.m13(), tr2.m13() ),
            'tr21': ( tr1.m21(), tr2.m21() ),
            'tr22': ( tr1.m22(), tr2.m22() ),
            'tr23': ( tr1.m23(), tr2.m23() ),
            'tr31': ( tr1.m31(), tr2.m31() ),
            'tr32': ( tr1.m32(), tr2.m32() ),
            'tr33': ( tr1.m33(), tr2.m33() )
        }
        log_string = 'Matrix element mismatch\n'
        good = True
        for key, values in dic.items():
            val1, val2 = values
            if val1 != val2:
                good = False
                log_string += f'{key}: {val1} != {val2}\n'
        assert good, log_string
    
    tr = QtGui.QTransform() # construct a reference transform
    tr.scale(2, 4)          # scale 2x2 image to 4x8
    tr.translate(-1, -1)    # after shifting by -1, -1 
    # the transformed 2x2 image would cover (-2,-4) to (2,4).
    # Now have setRect construct the same transform:
    imgitem = pg.ImageItem(np.eye(2), rect=(-2,-4, 4,8) ) # test tuple of floats
    assert_equal_transforms(tr, imgitem.transform())

    imgitem = pg.ImageItem(np.eye(2), rect=QtCore.QRectF(-2,-4, 4,8) ) # test QRectF
    assert_equal_transforms(tr, imgitem.transform())
    
    imgitem = pg.ImageItem(np.eye(2))
    imgitem.setRect(-2,-4, 4,8) # test individual parameters
    assert_equal_transforms(tr, imgitem.transform())

    imgitem = pg.ImageItem(np.eye(2))
    imgitem.setRect(QtCore.QRect(-2,-4, 4,8)) # test QRect argument
    assert_equal_transforms(tr, imgitem.transform())
def update(rect):
    global index
    x, y, w, h = rect.pos().x(), rect.pos().y(), rect.size().x(), rect.size(
    ).y()
    xsize = np.array([irect.size().x() for irect in rects])
    ysize = np.array([irect.size().y() for irect in rects])
    xpos = np.array([irect.pos().x() for irect in rects])
    ypos = np.array([irect.pos().y() for irect in rects])
    if len(np.unique(xsize)) == len(xsize):
        index = np.where(xsize == w)[0][0]
    elif len(np.unique(ysize)) == len(ysize):
        index = np.where(ysize == h)[0][0]
    elif len(np.unique(xpos)) == len(xpos):
        index = np.where(xpos == x)[0][0]
    elif len(np.unique(ypos)) == len(ypos):
        index = np.where(ypos == h)[0][0]
    else:
        index = 0

    imgs[index].setRect(QtCore.QRect(0, 0, w, w / ratios[index]))
    rects[index].setSize((w, w / ratios[index]))
    return index
Beispiel #7
0
 def _setbackground(self):
     if 'alpha' in pytplot.data_quants[
             self.tvar_name].attrs['plot_options']['extras']:
         alpha = pytplot.data_quants[
             self.tvar_name].attrs['plot_options']['extras']['alpha']
     else:
         alpha = 1
     if 'basemap' in pytplot.data_quants[
             self.tvar_name].attrs['plot_options']['extras']:
         if os.path.isfile(
                 pytplot.data_quants[self.tvar_name].attrs['plot_options']
             ['extras']['basemap']):
             from matplotlib.pyplot import imread
             img = imread(pytplot.data_quants[
                 self.tvar_name].attrs['plot_options']['extras']['basemap'],
                          format='RGBA')
             # Need to flip the image upside down...This will probably be fixed in
             # a future release, so this will need to be deleted at some point
             img = img[::-1]
             bm = ColorbarImage(image=img, opacity=alpha)
             bm.setRect(QtCore.QRect(0, -90, 360, 180))
             self.plotwindow.addItem(bm)
Beispiel #8
0
 def __init__(self, title, min, max, **kwargs):
     super().__init__()
     self.title = title
     self.min   = min;self.max = max; self.moved_cbs = []
     self.layout = QGridLayout()
     self.label0 = QLabel(self)
     self.label  = QLabel(self)
     self.dial   = QDial()
     self.bar    = _Bar(["#5e4fa2", "#3288bd", "#66c2a5", "#abdda4",
                         "#e6f598", "#ffffbf", "#fee08b", "#fdae61",
                         "#f46d43", "#d53e4f", "#9e0142"])
     #_Bar(20) for pink ["#49006a", "#7a0177", "#ae017e", "#dd3497", "#f768a1", "#fa9fb5", "#fcc5c0", "#fde0dd", "#fff7f3"]
     self.label0.setStyleSheet(self.style)
     self.dial.setStyleSheet(self.style)
     self.label.setStyleSheet(self.style)
     self.dial.setMinimum(self.min)
     self.dial.setMaximum(self.max)
     self.dial.setValue(self.max)
     self.dial.setNotchesVisible(True)
     self.dial.valueChanged.connect(self.slider_moved)
     self.dial.setWrapping(False)
     self.dial.setGeometry(QtCore.QRect(25,25,100,100))
     self.layout.addWidget(self.label0, 0, 0, 1, 1)
     self.layout.addWidget(self.dial,1,0,1,1)
     self.layout.addWidget(self.bar,1,1,1,1)
     self.layout.addWidget(self.label,2,0, 1, 1)
     self.setLayout(self.layout)
     self.label0.setText(self.title)
     self.label.setStyleSheet("font-family: Impact, Charcoal, sans-serif");
     self.label.setText(str(self.dial.value()))
     #self.dial.installEventFilter(self) ## disables person using mouse
     self.show()
     ## Bar related initalization
     self.add_slider_moved(self.bar._trigger_refresh)
     # Take NO feedback from click events on the meter.
     self.bar.installEventFilter(self)
Beispiel #9
0
    def export(self, fileName=None):
        if fileName is None:
            self.fileSaveDialog(filter="Scalable Vector Graphics (*.svg)")
            return
        self.svg = QtSvg.QSvgGenerator()
        self.svg.setFileName(fileName)
        self.svg.setSize(QtCore.QSize(100,100))
        #self.svg.setResolution(600)
        #self.svg.setViewBox()
        targetRect = QtCore.QRect(0, 0, self.params['width'], self.params['height'])
        sourceRect = self.getSourceRect()
        painter = QtGui.QPainter(self.svg)
        try:
            self.setExportMode(True)
            self.render(painter, QtCore.QRectF(targetRect), sourceRect)
        finally:
            self.setExportMode(False)
        painter.end()

        ## Workaround to set pen widths correctly
        data = open(fileName).readlines()
        for i in range(len(data)):
            line = data[i]
            m = re.match(r'(<g .*)stroke-width="1"(.*transform="matrix\(([^\)]+)\)".*)', line)
            if m is not None:
                #print "Matched group:", line
                g = m.groups()
                matrix = map(float, g[2].split(','))
                #print "matrix:", matrix
                scale = max(abs(matrix[0]), abs(matrix[3]))
                if scale == 0 or scale == 1.0:
                    continue
                data[i] = g[0] + ' stroke-width="%0.2g" ' % (1.0/scale) + g[1] + '\n'
                #print "old line:", line
                #print "new line:", data[i]
        open(fileName, 'w').write(''.join(data))
Beispiel #10
0
    def setupUi(self, MainWindow):
        #Set up window
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowTitle("RMC2019 - Electrical Test Program")
        MainWindow.resize(450, 200)

        self.nodes = list()

        #Set up central widget
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        MainWindow.setCentralWidget(self.centralWidget)

        #Set up layout
        self.layout = QtWidgets.QGridLayout()
        self.layout.setSpacing(0)
        self.centralWidget.setLayout(self.layout)

        #Setup status bar
        self.statusBar = QtWidgets.QStatusBar(MainWindow)
        self.statusBar.setObjectName("statusBar")
        MainWindow.setStatusBar(self.statusBar)

        #Setup menu bar
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setObjectName("menuBar")
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 614, 22))
        MainWindow.setMenuBar(self.menuBar)

        #Setup tool bar
        self.mainToolBar = QtWidgets.QToolBar(MainWindow)
        self.mainToolBar.setObjectName("mainToolBar")
        self.mainToolBar.setMaximumHeight(25)
        self.mainToolBar.setMinimumWidth(450)
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)

        #Set up widgets
        self.lbStatus = QtWidgets.QLabel("No status!")
        self.lbIPAddress = QtWidgets.QLabel("IP Address: ")
        self.txtIPAddress = QtWidgets.QTextEdit("192.168.0.")
        self.lbPort = QtWidgets.QLabel("Port: ")
        self.txtPort = QtWidgets.QTextEdit("2345")
        self.btnConnect = QtWidgets.QPushButton("Connect")
        self.controlModule = ControlWidget()
        self.controlModule.hide()

        self.txtPort.setMinimumWidth(70)
        self.txtPort.setMaximumWidth(70)

        self.txtIPAddress.setMinimumWidth(120)
        self.txtIPAddress.setMaximumWidth(120)

        #Add widgets to menu bar

        #Add widgets to tool bar
        self.mainToolBar.addWidget(self.lbIPAddress)
        self.mainToolBar.addWidget(self.txtIPAddress)
        self.mainToolBar.addWidget(self.lbPort)
        self.mainToolBar.addWidget(self.txtPort)
        self.mainToolBar.addWidget(self.btnConnect)

        #Add widgets to status bar
        self.statusBar.addWidget(self.lbStatus)

        #Add widgets to the layout
        self.layout.addWidget(self.controlModule)
 def paintEvent(self, ev):
     if self._img is None:
         return
     p = QtGui.QPainter(self)
     p.drawImage(self.rect(), self._img, QtCore.QRect(0, 0, self._img.width(), self._img.height()))
     p.end()
Beispiel #12
0
    def __init__(self):

        #Initialisation de la GUI, des connections actionneurs/fonctions et des modules supplémentaires non supportés par QtCreator
        os.chdir("/home/pi/Desktop/Résultats Capsula")  #dossier de travail
        super(self.__class__, self).__init__()
        self.setupUi(self)  #initialisation de la GUI Capsula
        #Ajout des Widgets non proposés par QtDesigner
        #Graphe intensité du laser
        self.graphicsViewLaserBeamProfile = PlotWidget(
            self.tabWidgetLaserControl)
        self.graphicsViewLaserBeamProfile.setGeometry(
            QtCore.QRect(310, 60, 475, 300))
        self.graphicsViewLaserBeamProfile.setXRange(0, 480)
        self.graphicsViewLaserBeamProfile.setYRange(0, 255)
        self.graphicsViewLaserBeamProfile.setObjectName(
            "graphicsViewLaserBeamProfile")
        #Graphe détection
        self.graphicsViewRealPlot = PlotWidget(self.tabWidgetDetection)
        self.graphicsViewRealPlot.setGeometry(QtCore.QRect(10, 10, 550, 310))
        self.graphicsViewRealPlot.setXRange(0, 400)
        self.graphicsViewRealPlot.setYRange(0, 1)
        self.graphicsViewRealPlot.setObjectName("graphicsViewRealPlot")
        #Message "Making reference, please wait"
        self.messageBoxBlank = QtGui.QProgressDialog(
            "Making reference, please wait...", "Cancel", 0, 100,
            self.tabWidgetDetection)
        self.messageBoxBlank.setWindowTitle("Wait...")

        #Initialisation des threads
        self.thread1 = thread.LoadingBar(self.messageBoxBlank)
        self.thread2 = thread.MakeBlank(self.messageBoxBlank)

        #Connexion boutons/méthodes
        self.checkBoxLaser532nm.clicked.connect(
            lambda: las.togglelaser532nm(self.checkBoxLaser532nm.isChecked()))
        self.checkBoxLaser635nm.clicked.connect(
            lambda: las.togglelaser635nm(self.checkBoxLaser635nm.isChecked()))
        self.pushButtonDutyCycleM.clicked.connect(
            lambda: mot.dutyCycleM(int(self.lcdNumberDutyCycleM.value())))
        self.pushButtonBlank.clicked.connect(self.makeBlank)
        self.pushButtonClear.clicked.connect(self.on_init)
        self.pushButtonChangeDirectionM.clicked.connect(mot.changeDirectionM)
        self.pushButtonRunAndGoBackM.clicked.connect(mot.runAndGoBackM)
        self.pushButtonSeeCamera.clicked.connect(lambda: las.cameraStart(
            self.graphicsViewLaserBeamProfile, self.labelBeamImage, self.
            labelHHWValue, int(self.lineEditExposureTime.displayText())))
        self.pushButtonStart.clicked.connect(self.startAcquisition)
        self.pushButtonStartMotor.clicked.connect(mot.startM)
        self.pushButtonStop.clicked.connect(self.stopAcquisition)
        self.pushButtonStopMotor.clicked.connect(mot.stopM)
        self.radioButtonContinu.clicked.connect(self.continuousDisplay)
        self.radioButtonSegmente.clicked.connect(self.segmentedDisplay)

        #Connexion actions/méthodes
        self.actionOpen_detection_configuration.triggered.connect(
            self.openDetectionConfiguration)
        self.actionOpen_pump_configuration.triggered.connect(
            self.openPumpConfiguration)
        self.actionOpen_motor_configuration.triggered.connect(
            self.openMotorConfiguration)
        self.actionPause.triggered.connect(self.pauseAcquisition)
        self.actionQuit.triggered.connect(self.closeEvent)
        self.actionSave_detection_configuration.triggered.connect(
            self.saveDetectionConfiguration)
        self.actionSave_pump_configuration.triggered.connect(
            self.savePumpConfiguration)
        self.actionSave_motor_configuration.triggered.connect(
            self.saveMotorConfiguration)
        self.actionStart_Aquisition.triggered.connect(self.startAcquisition)
        self.actionStop_Aquisition.triggered.connect(self.stopAcquisition)

        #Initialisation timer
        self.timer = QtCore.QTimer()
        self.pasDeTemps = int(
            self.lineEditSamplingPeriod.displayText())  #vitesse d'affichage
        self.timer.setInterval(self.pasDeTemps)
        self.timer.timeout.connect(
            self.update)  #connexion timer out/update data

        #Initialisation graphe
        self.on_init()

        #Initialisation lasers
        GPIO.output(22, True)
        GPIO.output(32, True)

        #Déclaration variables
        self.blankDone = False
        self.inCaps = False
        self.noFloatDetected = True
        self.oldLineEdit = ""
        self.pause = False
        self.start = False
        self.stop = False
        self.withlVid = False
        self.withrVid = False

        #Connexion Rpi/Arduino via USB
        self.ser = serial.Serial('/dev/ttyACM0', 115200)

        #Onglet Lasers
        """voir laser.py"""

        #Onglet Fluidics
        """rien pour l'instant"""
Beispiel #13
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.cap = None
        self.filename = None

        font = QtGui.QFont()
        font.setPixelSize(15)

        self.resize(950, 560)
        self.setWindowTitle('Open Field analysis: Activity')

        self.LablePath = QtGui.QLineEdit(self)
        self.LablePath.setEnabled(False)
        self.LablePath.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LablePath.setFrame(False)

        self.open_button = QtGui.QPushButton(self)
        self.open_button.setText("Open Video")
        self.open_button.clicked.connect(self.getfile)
        self.open_button.setGeometry(QtCore.QRect(9, 9, 75, 23))

        self.End_button = QtGui.QPushButton(self)
        self.End_button.setText("End")
        self.End_button.clicked.connect(self.setEnd)
        self.End_button.setGeometry(QtCore.QRect(600, 530, 50, 23))

        self.Lableframe = QtGui.QLineEdit(self)
        self.Lableframe.setEnabled(False)
        self.Lableframe.setGeometry(QtCore.QRect(419, 530, 170, 20))
        self.Lableframe.setFrame(False)

        self.save_button = QtGui.QPushButton(self)
        self.save_button.setText("Save data")
        self.save_button.clicked.connect(self.handleSave)
        self.save_button.setGeometry(QtCore.QRect(850, 470, 80, 30))
        self.save_button.setFont(font)
        self.save_button.setEnabled(False)

        self.play_button = QtGui.QPushButton(self)
        self.play_button.setText("Analyze")
        self.play_button.clicked.connect(self.AnalyzeBtn)
        self.play_button.setGeometry(QtCore.QRect(760, 470, 80, 30))
        self.play_button.setFont(font)
        self.play_button.setEnabled(False)

        self.roi_button = QtGui.QPushButton(self)
        self.roi_button.setText("Save Roi")
        self.roi_button.clicked.connect(self.roi_box)
        self.roi_button.setGeometry(QtCore.QRect(670, 470, 80, 30))

        self.sl_frame = QtGui.QSlider(self)
        self.sl_frame.setOrientation(QtCore.Qt.Horizontal)
        self.sl_frame.setMinimum(1)
        self.sl_frame.setMaximum(255)
        self.sl_frame.setValue(1)
        self.sl_frame.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_frame.setTickInterval(1000)
        self.sl_frame.setGeometry(QtCore.QRect(9, 530, 400, 20))
        self.sl_frame.valueChanged.connect(self.selectionchange)
        self.sl_frame.setEnabled(True)

        self.video_frame = QtGui.QLabel(self)
        self.video_frame.setGeometry(QtCore.QRect(10, 40, 640, 480))
        self.video_frame.setFrameShape(QtGui.QFrame.Box)

        self.pg1 = pg.GraphicsView(self)
        self.pg1.setStyleSheet("background: transparent")
        self.pg1.setGeometry(QtCore.QRect(10, 40, 640, 480))
        self.pg1.setFrameShape(QtGui.QFrame.Box)
        self.pg1.setBackground(None)
        self.roi = pg.PolyLineROI(
            [[65, 221], [65, 271], [240, 271], [240, 221]],
            pen=(6, 9),
            closed=True)
        self.roi_2 = pg.PolyLineROI(
            [[263, 18], [263, 218], [313, 218], [313, 18]],
            pen=(0, 9),
            closed=True)
        self.roi_3 = pg.PolyLineROI(
            [[383, 225], [383, 275], [583, 275], [583, 225]],
            pen=(6, 9),
            closed=True)
        self.roi_4 = pg.PolyLineROI(
            [[255, 267], [255, 467], [305, 467], [305, 267]],
            pen=(0, 9),
            closed=True)
        self.pg1.addItem(self.roi)
        self.pg1.addItem(self.roi_2)
        self.pg1.addItem(self.roi_3)
        self.pg1.addItem(self.roi_4)
        self.img = pg.ImageItem(border='w')
        self.img.rotate(90)
        self.pg1.addItem(self.img)

        self.pg2_label = QtGui.QLineEdit(self)
        self.pg2_label.setGeometry(QtCore.QRect(650, 10, 320, 20))
        self.pg2_label.setFrame(False)
        self.pg2_label.setEnabled(False)
        self.pg2_label.setText("Tracking:")

        self.pg2 = pg.GraphicsLayoutWidget(self)
        self.pg2.setGeometry(QtCore.QRect(650, 40, 280, 200))
        self.pg2.setBackground(None)
        self.w1 = self.pg2.addPlot()
        self.plot = pg.PlotDataItem(size=3, connect="all", symbolSize=3)
        self.w1.invertY()
        self.w1.addItem(self.plot)

        self.proBar_label = QtGui.QLineEdit(self)
        self.proBar_label.setGeometry(QtCore.QRect(670, 500, 320, 20))
        self.proBar_label.setFrame(False)
        self.proBar_label.setEnabled(False)
        self.proBar_label.setText("Progress:")
        self.proBar = QtGui.QProgressBar(self)
        self.proBar.setGeometry(QtCore.QRect(670, 520, 280, 20))

        self.sl = QtGui.QSlider(self)
        self.sl.setOrientation(QtCore.Qt.Horizontal)
        self.sl.setMinimum(0)
        self.sl.setMaximum(255)
        self.sl.setValue(200)
        self.sl.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl.setTickInterval(10)
        self.sl.setGeometry(QtCore.QRect(750, 400, 180, 20))
        self.sl.valueChanged.connect(self.selectionchange)
        self.sl.setEnabled(False)

        self.sl_brigth = QtGui.QSlider(self)
        self.sl_brigth.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth.setMinimum(0)
        self.sl_brigth.setMaximum(50)
        self.sl_brigth.setValue(10)
        self.sl_brigth.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth.setTickInterval(10)
        self.sl_brigth.valueChanged.connect(self.selectionchange)
        self.sl_brigth.setGeometry(QtCore.QRect(750, 270, 180, 20))

        self.sl_brigth2 = QtGui.QSlider(self)
        self.sl_brigth2.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth2.setMinimum(0)
        self.sl_brigth2.setMaximum(50)
        self.sl_brigth2.setValue(10)
        self.sl_brigth2.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth2.setTickInterval(10)
        self.sl_brigth2.valueChanged.connect(self.selectionchange)
        self.sl_brigth2.setGeometry(QtCore.QRect(750, 300, 180, 20))

        self.sl_brigth3 = QtGui.QSlider(self)
        self.sl_brigth3.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth3.setMinimum(0)
        self.sl_brigth3.setMaximum(50)
        self.sl_brigth3.setValue(10)
        self.sl_brigth3.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth3.setTickInterval(10)
        self.sl_brigth3.valueChanged.connect(self.selectionchange)
        self.sl_brigth3.setGeometry(QtCore.QRect(750, 330, 180, 20))

        self.sl_brigth4 = QtGui.QSlider(self)
        self.sl_brigth4.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth4.setMinimum(0)
        self.sl_brigth4.setMaximum(50)
        self.sl_brigth4.setValue(10)
        self.sl_brigth4.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth4.setTickInterval(10)
        self.sl_brigth4.valueChanged.connect(self.selectionchange)
        self.sl_brigth4.setGeometry(QtCore.QRect(750, 360, 180, 20))

        self.sl_rotation = QtGui.QSlider(self)
        self.sl_rotation.setOrientation(QtCore.Qt.Horizontal)
        self.sl_rotation.setMinimum(-180)
        self.sl_rotation.setMaximum(180)
        self.sl_rotation.setValue(0)
        self.sl_rotation.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_rotation.setTickInterval(20)
        self.sl_rotation.valueChanged.connect(self.selectionchange)
        self.sl_rotation.setGeometry(QtCore.QRect(750, 430, 180, 20))

        self.thresh_label = QtGui.QLineEdit(self)
        self.thresh_label.setEnabled(False)
        self.thresh_label.setGeometry(QtCore.QRect(670, 400, 80, 20))
        self.thresh_label.setFrame(False)
        self.thresh_label.setText("Set threshold:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(690, 270, 50, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Roi 1:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(690, 300, 50, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Roi 2:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(690, 330, 50, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Roi 3:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(690, 360, 50, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Roi 4:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(670, 240, 80, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Set brightness:")

        self.rotation_label = QtGui.QLineEdit(self)
        self.rotation_label.setEnabled(False)
        self.rotation_label.setGeometry(QtCore.QRect(670, 430, 80, 20))
        self.rotation_label.setFrame(False)
        self.rotation_label.setText("Rotate image:")

        self.btn_refresh = QtGui.QPushButton(self)
        self.btn_refresh.setText("Live")
        self.btn_refresh.clicked.connect(self.Live)
        self.btn_refresh.setGeometry(QtCore.QRect(850, 230, 80, 23))

        self.show()
Beispiel #14
0
    def export(self, fileName=None, toBytes=False, copy=False):
        if fileName is None and not toBytes and not copy:
            if USE_PYSIDE:
                filter = [
                    "*." + str(f)
                    for f in QtGui.QImageWriter.supportedImageFormats()
                ]
            else:
                filter = [
                    "*." + bytes(f).decode('utf-8')
                    for f in QtGui.QImageWriter.supportedImageFormats()
                ]
            preferred = ['*.png', '*.tif', '*.jpg']
            for p in preferred[::-1]:
                if p in filter:
                    filter.remove(p)
                    filter.insert(0, p)
            self.fileSaveDialog(filter=filter)
            return

        targetRect = QtCore.QRect(0, 0, self.params['width'],
                                  self.params['height'])
        sourceRect = self.getSourceRect()

        #self.png = QtGui.QImage(targetRect.size(), QtGui.QImage.Format_ARGB32)
        # self.png.fill(pyqtgraph.mkColor(self.params['background']))
        w, h = self.params['width'], self.params['height']
        if w == 0 or h == 0:
            raise Exception(
                "Cannot export image with size=0 (requested export size is %dx%d)"
                % (w, h))
        bg = np.empty(
            (int(self.params['width']), int(self.params['height']), 4),
            dtype=np.ubyte)
        color = self.params['background']
        bg[:, :, 0] = color.blue()
        bg[:, :, 1] = color.green()
        bg[:, :, 2] = color.red()
        bg[:, :, 3] = color.alpha()
        self.png = fn.makeQImage(bg, alpha=True)

        # set resolution of image:
        origTargetRect = self.getTargetRect()
        resolutionScale = targetRect.width() / origTargetRect.width()
        #self.png.setDotsPerMeterX(self.png.dotsPerMeterX() * resolutionScale)
        #self.png.setDotsPerMeterY(self.png.dotsPerMeterY() * resolutionScale)

        painter = QtGui.QPainter(self.png)
        #dtr = painter.deviceTransform()
        try:
            self.setExportMode(
                True, {
                    'antialias': self.params['antialias'],
                    'background': self.params['background'],
                    'painter': painter,
                    'resolutionScale': resolutionScale
                })
            painter.setRenderHint(QtGui.QPainter.Antialiasing,
                                  self.params['antialias'])
            self.getScene().render(painter, QtCore.QRectF(targetRect),
                                   QtCore.QRectF(sourceRect))
        finally:
            self.setExportMode(False)
        painter.end()

        if copy:
            QtGui.QApplication.clipboard().setImage(self.png)
        elif toBytes:
            return self.png
        else:
            self.png.save(fileName)
Beispiel #15
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(1193, 801)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.graphclass1 = PyQtGraphWid1(self.centralwidget)
        self.graphclass1.setObjectName(_fromUtf8("graphclass1"))
        self.gridLayout.addWidget(self.graphclass1, 0, 0, 1, 1)
        self.graphclass2 = PyQtGraphWid2(self.centralwidget)
        self.graphclass2.setObjectName(_fromUtf8("graphclass2"))
        self.gridLayout.addWidget(self.graphclass2, 0, 1, 1, 1)
        self.graphclass3 = PyQtGraphWid3(self.centralwidget)
        self.graphclass3.setObjectName(_fromUtf8("graphclass3"))
        self.gridLayout.addWidget(self.graphclass3, 1, 0, 1, 1)
        self.graphclass4 = PyQtGraphWid4(self.centralwidget)
        self.graphclass4.setObjectName(_fromUtf8("graphclass4"))
        self.gridLayout.addWidget(self.graphclass4, 1, 1, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1193, 26))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuFichier = QtGui.QMenu(self.menubar)
        self.menuFichier.setObjectName(_fromUtf8("menuFichier"))
        self.menuImage = QtGui.QMenu(self.menubar)
        self.menuImage.setObjectName(_fromUtf8("menuImage"))
        self.menuFond = QtGui.QMenu(self.menubar)
        self.menuFond.setObjectName(_fromUtf8("menuFond"))
        self.menuAfficher_cacher = QtGui.QMenu(self.menubar)
        self.menuAfficher_cacher.setObjectName(_fromUtf8("menuAfficher_cacher"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.actionOpenMono = QtGui.QAction(MainWindow)
        self.actionOpenMono.setObjectName(_fromUtf8("actionOpenMono"))
        self.actionOpenMulti = QtGui.QAction(MainWindow)
        self.actionOpenMulti.setObjectName(_fromUtf8("actionOpenMulti"))
        self.actionQuit = QtGui.QAction(MainWindow)
        self.actionQuit.setObjectName(_fromUtf8("actionQuit"))
        self.actionOpenImg1 = QtGui.QAction(MainWindow)
        self.actionOpenImg1.setObjectName(_fromUtf8("actionOpenImg1"))
        self.actionOpenImg2 = QtGui.QAction(MainWindow)
        self.actionOpenImg2.setObjectName(_fromUtf8("actionOpenImg2"))
        self.actionOpenImg3 = QtGui.QAction(MainWindow)
        self.actionOpenImg3.setObjectName(_fromUtf8("actionOpenImg3"))
        self.actionOpenImg4 = QtGui.QAction(MainWindow)
        self.actionOpenImg4.setObjectName(_fromUtf8("actionOpenImg4"))
        self.actionBackAll = QtGui.QAction(MainWindow)
        self.actionBackAll.setObjectName(_fromUtf8("actionBackAll"))
        self.actionBack1 = QtGui.QAction(MainWindow)
        self.actionBack1.setObjectName(_fromUtf8("actionBack1"))
        self.actionBack2 = QtGui.QAction(MainWindow)
        self.actionBack2.setObjectName(_fromUtf8("actionBack2"))
        self.actionBack3 = QtGui.QAction(MainWindow)
        self.actionBack3.setObjectName(_fromUtf8("actionBack3"))
        self.actionBack4 = QtGui.QAction(MainWindow)
        self.actionBack4.setObjectName(_fromUtf8("actionBack4"))
        self.actionCacher1 = QtGui.QAction(MainWindow)
        self.actionCacher1.setObjectName(_fromUtf8("actionCacher1"))
        self.actionCacher2 = QtGui.QAction(MainWindow)
        self.actionCacher2.setObjectName(_fromUtf8("actionCacher2"))
        self.actionCacher3 = QtGui.QAction(MainWindow)
        self.actionCacher3.setObjectName(_fromUtf8("actionCacher3"))
        self.actionCacher4 = QtGui.QAction(MainWindow)
        self.actionCacher4.setObjectName(_fromUtf8("actionCacher4"))
        self.actionFondhide1 = QtGui.QAction(MainWindow)
        self.actionFondhide1.setObjectName(_fromUtf8("actionFondhide1"))
        self.actionFondhide2 = QtGui.QAction(MainWindow)
        self.actionFondhide2.setObjectName(_fromUtf8("actionFondhide2"))
        self.actionFondhide3 = QtGui.QAction(MainWindow)
        self.actionFondhide3.setObjectName(_fromUtf8("actionFondhide3"))
        self.actionFondhide4 = QtGui.QAction(MainWindow)
        self.actionFondhide4.setObjectName(_fromUtf8("actionFondhide4"))
        self.actionCacherAll = QtGui.QAction(MainWindow)
        self.actionCacherAll.setObjectName(_fromUtf8("actionCacherAll"))
        self.actionFondhideAll = QtGui.QAction(MainWindow)
        self.actionFondhideAll.setObjectName(_fromUtf8("actionFondhideAll"))
        self.menuFichier.addAction(self.actionOpenMono)
        self.menuFichier.addAction(self.actionOpenMulti)
        self.menuFichier.addAction(self.actionQuit)
        self.menuImage.addAction(self.actionOpenImg1)
        self.menuImage.addAction(self.actionOpenImg2)
        self.menuImage.addAction(self.actionOpenImg3)
        self.menuImage.addAction(self.actionOpenImg4)
        self.menuFond.addAction(self.actionBackAll)
        self.menuFond.addAction(self.actionBack1)
        self.menuFond.addAction(self.actionBack2)
        self.menuFond.addAction(self.actionBack3)
        self.menuFond.addAction(self.actionBack4)
        self.menuAfficher_cacher.addAction(self.actionCacher1)
        self.menuAfficher_cacher.addAction(self.actionCacher2)
        self.menuAfficher_cacher.addAction(self.actionCacher3)
        self.menuAfficher_cacher.addAction(self.actionCacher4)
        self.menuAfficher_cacher.addAction(self.actionFondhide1)
        self.menuAfficher_cacher.addAction(self.actionFondhide2)
        self.menuAfficher_cacher.addAction(self.actionFondhide3)
        self.menuAfficher_cacher.addAction(self.actionFondhide4)
        self.menuAfficher_cacher.addAction(self.actionCacherAll)
        self.menuAfficher_cacher.addAction(self.actionFondhideAll)
        self.menubar.addAction(self.menuFichier.menuAction())
        self.menubar.addAction(self.menuImage.menuAction())
        self.menubar.addAction(self.menuFond.menuAction())
        self.menubar.addAction(self.menuAfficher_cacher.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.cap = None
        self.filename = None
        self.magnification = 1

        font = QtGui.QFont()
        font.setBold(True)

        self.resize(500, 1000)
        self.setWindowTitle('Open Field analysis: Activity')

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

        self.LableMag = QtGui.QLineEdit(self)
        self.LableMag.setEnabled(False)
        self.LableMag.setGeometry(QtCore.QRect(800, 30, 80, 20))
        self.LableMag.setFrame(False)
        self.LableMag.setText("Video mag.:")

        self.videoSize = QtGui.QComboBox(self)
        self.videoSize.addItem("1X")
        self.videoSize.addItem("1.5X")
        self.videoSize.addItem("2X")
        self.videoSize.addItem("3X")
        self.videoSize.addItem("4X")
        self.videoSize.setCurrentIndex(0)
        self.videoSize.setEnabled(True)
        self.videoSize.activated.connect(self.magnific)
        self.videoSize.setGeometry(QtCore.QRect(675, 30, 50, 20))

        self.LablePath = QtGui.QLineEdit(self)
        self.LablePath.setEnabled(False)
        self.LablePath.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LablePath.setFrame(False)

        self.open_button = QtGui.QPushButton(self)
        self.open_button.setText("Open Video")
        self.open_button.clicked.connect(self.getfile)
        self.open_button.setGeometry(QtCore.QRect(9, 9, 75, 23))

        self.save_button = QtGui.QPushButton(self)
        self.save_button.setText("Save data")
        self.save_button.clicked.connect(self.handleSave)
        self.save_button.setGeometry(QtCore.QRect(850, 450, 80, 30))
        self.save_button.setEnabled(False)

        self.play_button = QtGui.QPushButton(self)
        self.play_button.setText("Analyze")
        self.play_button.clicked.connect(self.AnalyzeBtn)
        self.play_button.setGeometry(QtCore.QRect(760, 450, 80, 30))
        self.play_button.setEnabled(False)

        self.roi_button = QtGui.QPushButton(self)
        self.roi_button.setText("Save Roi")
        self.roi_button.clicked.connect(self.roi_box)
        self.roi_button.setGeometry(QtCore.QRect(670, 450, 80, 30))

        self.pg2_label = QtGui.QLineEdit(self)
        self.pg2_label.setGeometry(QtCore.QRect(650, 10, 320, 20))
        self.pg2_label.setFrame(False)
        self.pg2_label.setEnabled(False)
        self.pg2_label.setText("Tracking:")
        self.pg2_label.setFont(font)

        self.pg2 = pg.GraphicsLayoutWidget(self)
        self.pg2.setGeometry(QtCore.QRect(650, 40, 280, 200))
        self.pg2.setBackground(None)
        self.roi2 = pg.RectROI([200, 200], [200, 200],
                               pen=(0, 9),
                               movable=False,
                               centered=True,
                               sideScalers=False)
        self.w1 = self.pg2.addPlot()
        self.plot = pg.PlotDataItem(size=3, connect="all", symbolSize=3)
        self.w1.invertY()
        self.w1.addItem(self.plot)
        self.w1.addItem(self.roi2)
        self.roi3 = pg.RectROI([200, 200], [200, 200],
                               pen=(2, 9),
                               movable=False,
                               centered=True,
                               sideScalers=False)
        self.w1.addItem(self.roi3)

        self.Options_label = QtGui.QLineEdit(self)
        self.Options_label.setGeometry(QtCore.QRect(670, 270, 320, 20))
        self.Options_label.setFrame(False)
        self.Options_label.setEnabled(False)
        self.Options_label.setText("Options:")
        self.Options_label.setFont(font)

        self.proBar_label = QtGui.QLineEdit(self)
        self.proBar_label.setGeometry(QtCore.QRect(670, 500, 320, 20))
        self.proBar_label.setFrame(False)
        self.proBar_label.setEnabled(False)
        self.proBar_label.setText("Progress:")
        self.proBar = QtGui.QProgressBar(self)
        self.proBar.setGeometry(QtCore.QRect(670, 520, 280, 20))

        self.sl = QtGui.QSlider(self)
        self.sl.setOrientation(QtCore.Qt.Horizontal)
        self.sl.setMinimum(0)
        self.sl.setMaximum(255)
        self.sl.setValue(200)
        self.sl.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl.setTickInterval(10)
        self.sl.setGeometry(QtCore.QRect(750, 340, 180, 20))
        self.sl.valueChanged.connect(self.selectionchange)
        self.sl.setEnabled(False)

        self.sl_brigth = QtGui.QSlider(self)
        self.sl_brigth.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth.setMinimum(0)
        self.sl_brigth.setMaximum(50)
        self.sl_brigth.setValue(10)
        self.sl_brigth.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth.setTickInterval(10)
        self.sl_brigth.valueChanged.connect(self.selectionchange)
        self.sl_brigth.setGeometry(QtCore.QRect(750, 370, 180, 20))

        self.sl_rotation = QtGui.QSlider(self)
        self.sl_rotation.setOrientation(QtCore.Qt.Horizontal)
        self.sl_rotation.setMinimum(-180)
        self.sl_rotation.setMaximum(180)
        self.sl_rotation.setValue(0)
        self.sl_rotation.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_rotation.setTickInterval(20)
        self.sl_rotation.valueChanged.connect(self.selectionchange)
        self.sl_rotation.setGeometry(QtCore.QRect(750, 400, 180, 20))

        self.Inner_label = QtGui.QLineEdit(self)
        self.Inner_label.setEnabled(False)
        self.Inner_label.setGeometry(QtCore.QRect(670, 230, 80, 20))
        self.Inner_label.setFrame(False)
        self.Inner_label.setText("Inner box (%):")

        self.Inner = QtGui.QLineEdit(self)
        self.Inner.setEnabled(True)
        self.Inner.setText("45")
        self.Inner.setGeometry(QtCore.QRect(760, 230, 40, 20))
        self.Inner.setFrame(True)

        self.BoxW_label = QtGui.QLineEdit(self)
        self.BoxW_label.setEnabled(False)
        self.BoxW_label.setGeometry(QtCore.QRect(690, 290, 80, 20))
        self.BoxW_label.setFrame(False)
        self.BoxW_label.setText("Width (cm):")

        self.BoxW = QtGui.QLineEdit(self)
        self.BoxW.setEnabled(True)
        self.BoxW.setText("80")
        self.BoxW.setGeometry(QtCore.QRect(760, 290, 40, 20))
        self.BoxW.setFrame(True)

        self.BoxL_label = QtGui.QLineEdit(self)
        self.BoxL_label.setEnabled(False)
        self.BoxL_label.setGeometry(QtCore.QRect(830, 290, 80, 20))
        self.BoxL_label.setFrame(False)
        self.BoxL_label.setText("Long (cm):")

        self.BoxL = QtGui.QLineEdit(self)
        self.BoxL.setEnabled(True)
        self.BoxL.setText("100")
        self.BoxL.setGeometry(QtCore.QRect(895, 290, 40, 20))
        self.BoxL.setFrame(True)

        self.thresh_label = QtGui.QLineEdit(self)
        self.thresh_label.setEnabled(False)
        self.thresh_label.setGeometry(QtCore.QRect(670, 340, 80, 20))
        self.thresh_label.setFrame(False)
        self.thresh_label.setText("Set threshold:")

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(670, 370, 80, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Set brightness:")

        self.rotation_label = QtGui.QLineEdit(self)
        self.rotation_label.setEnabled(False)
        self.rotation_label.setGeometry(QtCore.QRect(670, 400, 80, 20))
        self.rotation_label.setFrame(False)
        self.rotation_label.setText("Rotate image:")

        self.btn_refresh = QtGui.QPushButton(self)
        self.btn_refresh.setText("Live")
        self.btn_refresh.clicked.connect(self.Live)
        self.btn_refresh.setGeometry(QtCore.QRect(850, 230, 80, 23))

        layout.addWidget(self.open_button, 0, 0)
        layout.addWidget(self.LableMag, 0, 1)
        layout.addWidget(self.videoSize, 0, 2)
        layout.addWidget(self.LablePath, 1, 0)
        layout.addWidget(self.pg2_label, 2, 0)
        layout.addWidget(self.pg2, 3, 0, 3, 3)
        layout.addWidget(self.btn_refresh, 2, 2)
        layout.addWidget(self.Options_label, 7, 0)
        layout.addWidget(self.Inner_label, 8, 1)
        layout.addWidget(self.Inner, 8, 2)
        layout.addWidget(self.BoxW_label, 9, 1)
        layout.addWidget(self.BoxW, 9, 2)
        layout.addWidget(self.BoxL_label, 10, 1)
        layout.addWidget(self.BoxL, 10, 2)
        layout.addWidget(self.thresh_label, 12, 0)
        layout.addWidget(self.sl, 12, 1, 1, 2)
        layout.addWidget(self.bright_label, 13, 0)
        layout.addWidget(self.sl_brigth, 13, 1, 1, 2)
        layout.addWidget(self.rotation_label, 14, 0)
        layout.addWidget(self.sl_rotation, 14, 1, 1, 2)
        layout.addWidget(self.roi_button, 16, 0)
        layout.addWidget(self.play_button, 16, 1)
        layout.addWidget(self.save_button, 16, 2)
        layout.addWidget(self.proBar_label, 18, 0)
        layout.addWidget(self.proBar, 18, 1, 1, 2)

        self.show()
    def setupUi(self, MainWindow, Dialog, parent):

        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1200, 800)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")

        self.btn = QtWidgets.QPushButton(self.centralwidget)
        self.gridLayout.addWidget(self.btn, 1, 0, 1, 1)

        self.btn2 = QtWidgets.QPushButton(self.centralwidget)
        self.gridLayout.addWidget(self.btn2, 2, 0, 1, 1)

        self.btn3 = QtWidgets.QPushButton(self.centralwidget)
        self.gridLayout.addWidget(self.btn3, 5, 0, 1, 1)

        self.btn4 = QtWidgets.QPushButton(self.centralwidget)
        self.gridLayout.addWidget(self.btn4, 3, 0, 1, 1)

        self.btn5 = QtWidgets.QPushButton(self.centralwidget)
        self.gridLayout.addWidget(self.btn5, 6, 0, 1, 1)

        #spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        #self.gridLayout.addItem(spacerItem, 15, 0, 1, 1)

        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.gridLayout.addWidget(self.comboBox, 0, 0, 1, 1)

        self.plot = pg.PlotWidget()
        self.gridLayout.addWidget(self.plot, 0, 1, 7, 1)

        MainWindow.setCentralWidget(self.centralwidget)

        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1001, 25))
        self.menubar.setObjectName("menubar")
        self.menu_aide = QtWidgets.QMenu(self.menubar)
        self.menu_aide.setObjectName("menu_aide")
        MainWindow.setMenuBar(self.menubar)
        self.action_propos = QtWidgets.QAction(MainWindow)
        self.action_propos.setObjectName("action_propos")
        self.menu_aide.addAction(self.action_propos)
        self.menubar.addAction(self.menu_aide.menuAction())

        # Initial parameters
        self.comboBox.setCurrentIndex(0)
        self.changeResistance()

        self.retranslateUi(MainWindow)

        self.R = 1069  # Première résistance
        self.RV = 4818000

        self.E = 4.996  # Voltage de la source

        self.baud = 9600  # baud rate
        #        self.filename = 'data.txt'                # log file to save data in
        fps = 100
        self.flagUpdate = False

        self.connexion = True

        self.plot.showGrid(x=True, y=True)
        self.xdata = []
        self.ydata = []

        self.courbe = self.plot.plot(pen=1)

        self.compteur = 0
        self.flagConnexion = 0

        self.connexionold = 0
        #        self.outFile = open(self.filename,'w')
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(lambda: self.update())
        self.timer.start(int(1000 / fps))

        # Buttons triggers
        self.action_propos.triggered.connect(lambda: Dialog.show())
        self.comboBox.currentIndexChanged['QString'].connect(
            lambda: self.changeResistance())
        self.btn.clicked.connect(lambda: self.toggleUpdate())
        self.btn2.clicked.connect(lambda: self.effacer())
        self.btn3.clicked.connect(lambda: self.graphique())
        self.btn4.clicked.connect(lambda: self.enregistrer())
        self.btn5.clicked.connect(lambda: self.fermerEtAfficher())
Beispiel #18
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1169, 786)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setObjectName("groupBox")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
        self.horizontalLayout.setObjectName("horizontalLayout")

        #开始画图***********************************************************************************************
        #第一列画图开始
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        #图一共有两列,这是第一列第一行的图
        self.graphicsView_1 = pg.GraphicsView(self.groupBox)
        self.graphicsView_1.setObjectName("graphicsView_1")
        self.l1 = pg.GraphicsLayout()
        self.graphicsView_1.setCentralItem(self.l1)
        self.graphicsView_1.show()
        self.p1 = self.l1.addPlot(title="结果")
        self.p1.enableAutoRange('xy', True)
        self.p1.setXRange(0, 10)
        self.curve = self.p1.plot(pen='y', symbolBrush=(0, 255, 0))
        self.gridLayout_2.addWidget(self.graphicsView_1, 0, 0, 1, 1)

        #第一列第二行的图
        self.graphicsView_3 = pg.GraphicsView(self.groupBox)
        self.graphicsView_3.setObjectName("graphicsView_3")
        self.l3 = pg.GraphicsLayout()
        self.graphicsView_3.setCentralItem(self.l3)
        self.graphicsView_3.show()
        self.p3 = self.l3.addPlot(title='加速度x')
        self.curve3 = self.p3.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p3.enableAutoRange('xy', True)
        self.p3.setXRange(0, 10)
        self.gridLayout_2.addWidget(self.graphicsView_3, 1, 0, 1, 1)

        #第一列第三行的图
        self.graphicsView_5 = pg.GraphicsView(self.groupBox)
        self.graphicsView_5.setObjectName("graphicsView_5")
        self.l5 = pg.GraphicsLayout()
        self.graphicsView_5.setCentralItem(self.l5)
        self.graphicsView_5.show()
        self.p5 = self.l5.addPlot(title='加速度z')
        self.curve5 = self.p5.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p5.enableAutoRange('xy', True)
        self.p5.setXRange(0, 10)
        self.gridLayout_2.addWidget(self.graphicsView_5, 2, 0, 1, 1)

        #第一列第四行的图
        self.graphicsView_7 = pg.GraphicsView(self.groupBox)
        self.graphicsView_7.setObjectName("graphicsView_7")
        self.l7 = pg.GraphicsLayout()
        self.graphicsView_7.setCentralItem(self.l7)
        self.graphicsView_7.show()
        self.p7 = self.l7.addPlot(title='电阻')
        # symbolBrush用来设置点的颜色
        self.curve7 = self.p7.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p7.enableAutoRange('xy', True)
        self.p7.setXRange(0, 10)
        self.gridLayout_2.addWidget(self.graphicsView_7, 3, 0, 1, 1)

        #第一列结束
        self.horizontalLayout.addLayout(self.gridLayout_2)
        #第二列开始

        self.gridLayout_3 = QtWidgets.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")

        #第二列第一行的图
        self.graphicsView_2 = pg.GraphicsView(self.groupBox)
        self.graphicsView_2.setObjectName("graphicsView_2")
        self.l2 = pg.GraphicsLayout()
        self.graphicsView_2.setCentralItem(self.l2)
        self.graphicsView_2.show()
        self.p2 = self.l2.addPlot(title="偏转角")
        self.p2.addLegend(offset=(0, 0))
        # curve2 = p2.plot(pen='y',symbolBrush=(0,255,0))
        self.p2.enableAutoRange('xy', True)
        self.gridLayout_3.addWidget(self.graphicsView_2, 0, 0, 1, 1)

        # 第二列第二行的图
        self.graphicsView_4 = pg.GraphicsView(self.groupBox)
        self.graphicsView_4.setObjectName("graphicsView_4")
        self.l4 = pg.GraphicsLayout()
        self.graphicsView_4.setCentralItem(self.l4)
        self.graphicsView_4.show()
        self.p4 = self.l4.addPlot(title='加速度y')
        self.curve4 = self.p4.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p4.enableAutoRange('xy', True)
        self.p4.setXRange(0, 10)
        self.gridLayout_3.addWidget(self.graphicsView_4, 1, 0, 1, 1)

        # 第二列第三行的图
        self.graphicsView_6 = pg.GraphicsView(self.groupBox)
        self.graphicsView_6.setObjectName("graphicsView_6")
        self.l6 = pg.GraphicsLayout()
        self.graphicsView_6.setCentralItem(self.l6)
        self.graphicsView_6.show()
        self.p6 = self.l6.addPlot(title='风压')
        self.curve6 = self.p6.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p6.enableAutoRange('xy', True)
        self.p6.setXRange(0, 10)
        self.gridLayout_3.addWidget(self.graphicsView_6, 2, 0, 1, 1)

        # 第二列第四行的图
        self.graphicsView_8 = pg.GraphicsView(self.groupBox)
        self.graphicsView_8.setObjectName("graphicsView_8")
        self.l8 = pg.GraphicsLayout()
        self.graphicsView_8.setCentralItem(self.l8)
        self.graphicsView_8.show()
        self.p8 = self.l8.addPlot(title='温度')
        self.curve8 = self.p8.plot(pen='y', symbolBrush=(0, 255, 0))
        self.p8.enableAutoRange('xy', True)
        self.p8.setXRange(0, 10)
        self.gridLayout_3.addWidget(self.graphicsView_8, 3, 0, 1, 1)
        #第二列画图结束
        self.horizontalLayout.addLayout(self.gridLayout_3)
        #画图结束!*************************************************************************************************************
        self.verticalLayout_2.addWidget(self.groupBox)
        self.horizontalLayout_2.addLayout(self.verticalLayout_2)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_2.setObjectName("groupBox_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_2)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton = QtWidgets.QPushButton(self.groupBox_2)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 5, 1, 1, 1)
        self.comboBox_3 = QtWidgets.QComboBox(self.groupBox_2)
        self.comboBox_3.setObjectName("comboBox_3")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.gridLayout.addWidget(self.comboBox_3, 1, 1, 1, 1)
        self.label = QtWidgets.QLabel(self.groupBox_2)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.groupBox_2)
        self.label_4.setObjectName("label_4")
        self.gridLayout.addWidget(self.label_4, 2, 0, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox_2)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 4, 0, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox_2)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 1, 0, 1, 1)
        self.comboBox = QtWidgets.QComboBox(self.groupBox_2)
        self.comboBox.setEnabled(True)
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.gridLayout.addWidget(self.comboBox, 4, 1, 1, 1)
        self.comboBox_2 = QtWidgets.QComboBox(self.groupBox_2)

        # 动态加入下拉框空位
        self.comboBox_2.setObjectName("comboBox_2")
        for i in range(len(startListen.StartListen().serialPort)):
            self.comboBox_2.addItem("")

        self.gridLayout.addWidget(self.comboBox_2, 0, 1, 1, 1)
        self.comboBox_5 = QtWidgets.QComboBox(self.groupBox_2)
        self.comboBox_5.setObjectName("comboBox_5")
        self.comboBox_5.addItem("")
        self.gridLayout.addWidget(self.comboBox_5, 3, 1, 1, 1)
        self.comboBox_4 = QtWidgets.QComboBox(self.groupBox_2)
        self.comboBox_4.setObjectName("comboBox_4")
        self.comboBox_4.addItem("")
        self.gridLayout.addWidget(self.comboBox_4, 2, 1, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.groupBox_2)
        self.label_5.setObjectName("label_5")
        self.gridLayout.addWidget(self.label_5, 3, 0, 1, 1)
        self.pushButton_3 = QtWidgets.QPushButton(self.groupBox_2)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout.addWidget(self.pushButton_3, 5, 0, 1, 1)
        self.horizontalLayout_3.addLayout(self.gridLayout)
        self.verticalLayout_3.addWidget(self.groupBox_2)
        self.horizontalLayout_2.addLayout(self.verticalLayout_3)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1169, 26))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.action = QtWidgets.QAction(MainWindow)
        self.action.setObjectName("action")
        self.actionexit = QtWidgets.QAction(MainWindow)
        self.actionexit.setObjectName("actionexit")
        self.menu.addAction(self.action)
        self.menu.addAction(self.actionexit)
        self.menubar.addAction(self.menu.menuAction())

        # 非自动生成的代码***************************************************************************************************************

        self.timer = QTimer()
        # 触发器
        self.timer.timeout.connect(self.TimeAction)
        self.timer.setInterval(self.updateInterval)
        #self.timer.start()

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Beispiel #19
0
    def export(self, fileName=None, toBytes=False, copy=False):
        # Can only export video from DaXView
        if self.daxview == None:
            return
        # Can only write to video
        if toBytes:
            return []

        # Get filename from user (the fileSaveDialog function calls export after finishing)
        if fileName is None:
            self.fileSaveDialog(filter=['*.mpeg', '*.mp4'])
            return
        if fileName.endswith('.mpeg') == False and fileName.endswith(
                '.mp4') == False:
            fileName = fileName + '.mpeg'
        # Get directory where video should go
        dirName = os.path.dirname(fileName)

        # Play entire sequence and store to temporary PNG files
        progress = QtGui.QProgressDialog('Exporting movie...', 'Abort', 0,
                                         int(self.daxview.data.shape[0] * 1.1))
        for i in range(self.daxview.data.shape[0]):
            # Set current frame
            self.daxview.setCurrentIndex(i)
            if i >= self.daxview.data.shape[0]:
                progress.setLabelText('Generating video...')
            # Export to png image
            targetRect = QtCore.QRect(0, 0, self.params['width'],
                                      self.params['height'])
            sourceRect = self.getSourceRect()

            #self.png = QtGui.QImage(targetRect.size(), QtGui.QImage.Format_ARGB32)
            #self.png.fill(pyqtgraph.mkColor(self.params['background']))
            w, h = self.params['width'], self.params['height']
            if w == 0 or h == 0:
                raise Exception(
                    "Cannot export image with size=0 (requested export size is %dx%d)"
                    % (w, h))
            bg = np.empty((self.params['width'], self.params['height'], 4),
                          dtype=np.ubyte)
            color = self.params['background']
            bg[:, :, 0] = color.blue()
            bg[:, :, 1] = color.green()
            bg[:, :, 2] = color.red()
            bg[:, :, 3] = color.alpha()
            self.png = fn.makeQImage(bg, alpha=False)

            ## set resolution of image:
            origTargetRect = self.getTargetRect()
            resolutionScale = targetRect.width() / origTargetRect.width()

            painter = QtGui.QPainter(self.png)
            #dtr = painter.deviceTransform()
            try:
                self.setExportMode(
                    True, {
                        'antialias': self.params['antialias'],
                        'background': self.params['background'],
                        'painter': painter,
                        'resolutionScale': resolutionScale
                    })
                painter.setRenderHint(QtGui.QPainter.Antialiasing,
                                      self.params['antialias'])
                self.getScene().render(painter, QtCore.QRectF(targetRect),
                                       QtCore.QRectF(sourceRect))
            finally:
                self.setExportMode(False)
            painter.end()
            # Send to png file
            pngFile = dirName + '/temp_' + '{:03d}'.format(i) + '.png'
            self.png.save(pngFile)
            progress.setValue(i)
            QtGui.QApplication.processEvents()
            if progress.wasCanceled():
                # Clean-up PNGs
                rmfiles = glob.glob('temp_*.png')
                for f in rmfiles:
                    os.remove(f)
                progress.close()
                return
        progress.close()

        # Convert PNGs to movie with FFMPEG
        if fileName.endswith('mpeg'):
            codec = 'mpeg2video'
        else:
            codec = 'libx264'
        sp.call([
            'ffmpeg', '-r',
            str(self.params.param('frame rate').value()), '-i',
            dirName + '/temp_%03d.png', '-b:v', '1000K', '-c:v', codec,
            '-vframes',
            str(self.daxview.data.shape[0]), '-y', fileName
        ])
        # Clean-up PNGs
        rmfiles = glob.glob(dirName + '/temp_*.png')
        for f in rmfiles:
            os.remove(f)
        return
Beispiel #20
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.cap = None
        self.filename = None
        self.magnification = 1

        font = QtGui.QFont()
        font.setBold(True)

        self.resize(500, 300)
        self.setWindowTitle('White box entrance analysis')

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

        self.LablePath = QtGui.QLineEdit(self)
        self.LablePath.setEnabled(False)
        self.LablePath.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LablePath.setFrame(False)

        self.LableRaw = QtGui.QLineEdit(self)
        self.LableRaw.setEnabled(False)
        self.LableRaw.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LableRaw.setFrame(False)

        self.LableMag = QtGui.QLineEdit(self)
        self.LableMag.setEnabled(False)
        self.LableMag.setGeometry(QtCore.QRect(800, 30, 80, 20))
        self.LableMag.setFrame(False)
        self.LableMag.setText("Video mag.:")

        self.videoSize = QtGui.QComboBox(self)
        self.videoSize.addItem("1X")
        self.videoSize.addItem("1.5X")
        self.videoSize.addItem("2X")
        self.videoSize.addItem("3X")
        self.videoSize.addItem("4X")
        self.videoSize.setCurrentIndex(0)
        self.videoSize.setEnabled(True)
        self.videoSize.activated.connect(self.magnific)
        self.videoSize.setGeometry(QtCore.QRect(675, 30, 50, 20))

        self.open_button = QtGui.QPushButton(self)
        self.open_button.setText("Open Video")
        self.open_button.clicked.connect(self.getfile)
        self.open_button.setGeometry(QtCore.QRect(9, 9, 75, 23))

        self.Results_label = QtGui.QLineEdit(self)
        self.Results_label.setGeometry(QtCore.QRect(670, 270, 320, 20))
        self.Results_label.setFrame(False)
        self.Results_label.setEnabled(False)
        self.Results_label.setText("Results:")
        self.Results_label.setFont(font)

        self.time_label = QtGui.QLineEdit(self)
        self.time_label.setGeometry(QtCore.QRect(670, 500, 320, 20))
        self.time_label.setFrame(False)
        self.time_label.setEnabled(False)
        self.time_label.setText("Time (s):")

        self.LableTime = QtGui.QLineEdit(self)
        self.LableTime.setEnabled(False)
        self.LableTime.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LableTime.setFrame(False)

        self.entries_label = QtGui.QLineEdit(self)
        self.entries_label.setGeometry(QtCore.QRect(670, 500, 320, 20))
        self.entries_label.setFrame(False)
        self.entries_label.setEnabled(False)
        self.entries_label.setText("# entries:")

        self.LableEntries = QtGui.QLineEdit(self)
        self.LableEntries.setEnabled(False)
        self.LableEntries.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LableEntries.setFrame(False)

        self.play_button = QtGui.QPushButton(self)
        self.play_button.setText("Analyze")
        self.play_button.clicked.connect(self.AnalyzeBtn)
        self.play_button.setGeometry(QtCore.QRect(760, 450, 80, 30))
        self.play_button.setEnabled(False)

        self.roi_button = QtGui.QPushButton(self)
        self.roi_button.setText("Save Roi")
        self.roi_button.clicked.connect(self.roi_box)
        self.roi_button.setGeometry(QtCore.QRect(670, 450, 80, 30))

        self.proBar_label = QtGui.QLineEdit(self)
        self.proBar_label.setGeometry(QtCore.QRect(670, 500, 320, 20))
        self.proBar_label.setFrame(False)
        self.proBar_label.setEnabled(False)
        self.proBar_label.setText("Progress:")
        self.proBar = QtGui.QProgressBar(self)
        self.proBar.setGeometry(QtCore.QRect(670, 520, 280, 20))

        self.sl_brigth = QtGui.QSlider(self)
        self.sl_brigth.setOrientation(QtCore.Qt.Horizontal)
        self.sl_brigth.setMinimum(0)
        self.sl_brigth.setMaximum(50)
        self.sl_brigth.setValue(10)
        self.sl_brigth.setTickPosition(QtGui.QSlider.TicksBelow)
        self.sl_brigth.setTickInterval(10)
        self.sl_brigth.valueChanged.connect(self.selectionchange)
        self.sl_brigth.setGeometry(QtCore.QRect(750, 370, 180, 20))

        self.bright_label = QtGui.QLineEdit(self)
        self.bright_label.setEnabled(False)
        self.bright_label.setGeometry(QtCore.QRect(670, 370, 80, 20))
        self.bright_label.setFrame(False)
        self.bright_label.setText("Set brightness:")

        self.sensitivity_label = QtGui.QLineEdit(self)
        self.sensitivity_label.setEnabled(False)
        self.sensitivity_label.setGeometry(QtCore.QRect(670, 230, 80, 20))
        self.sensitivity_label.setFrame(False)
        self.sensitivity_label.setText("Threshold (0-1):")

        self.sensitivity = QtGui.QLineEdit(self)
        self.sensitivity.setEnabled(True)
        self.sensitivity.setText("0.25")
        self.sensitivity.setGeometry(QtCore.QRect(760, 230, 40, 20))
        self.sensitivity.setFrame(True)

        layout.addWidget(self.open_button, 0, 0)
        layout.addWidget(self.LableMag, 0, 1)
        layout.addWidget(self.videoSize, 0, 2)
        layout.addWidget(self.LablePath, 1, 0)
        layout.addWidget(self.bright_label, 13, 0)
        layout.addWidget(self.sl_brigth, 13, 1, 1, 2)
        layout.addWidget(self.sensitivity_label, 14, 0, 1, 2)
        layout.addWidget(self.sensitivity, 14, 1)
        layout.addWidget(self.roi_button, 16, 0)
        layout.addWidget(self.play_button, 16, 1)
        layout.addWidget(self.proBar_label, 18, 0)
        layout.addWidget(self.proBar, 18, 1, 1, 2)
        layout.addWidget(self.LableRaw, 19, 1)
        layout.addWidget(self.Results_label, 20, 0)
        layout.addWidget(self.time_label, 21, 1)
        layout.addWidget(self.LableTime, 21, 2)
        layout.addWidget(self.entries_label, 22, 1)
        layout.addWidget(self.LableEntries, 22, 2)

        self.show()
Beispiel #21
0
    def __init__(self, *args, **kargs):
        """
        Create a new GradientEditorItem.
        All arguments are passed to :func:`TickSliderItem.__init__ <pyqtgraph.TickSliderItem.__init__>`

        ===============  =================================================================================
        **Arguments:**
        orientation      Set the orientation of the gradient. Options are: 'left', 'right'
                         'top', and 'bottom'.
        allowAdd         Default is True. Specifies whether ticks can be added to the item.
        tickPen          Default is white. Specifies the color of the outline of the ticks.
                         Can be any of the valid arguments for :func:`mkPen <pyqtgraph.mkPen>`
        ===============  =================================================================================
        """
        self.currentTick = None
        self.currentTickColor = None
        self.rectSize = 15
        self.gradRect = QtGui.QGraphicsRectItem(
            QtCore.QRectF(0, self.rectSize, 100, self.rectSize))
        self.backgroundRect = QtGui.QGraphicsRectItem(
            QtCore.QRectF(0, -self.rectSize, 100, self.rectSize))
        self.backgroundRect.setBrush(QtGui.QBrush(QtCore.Qt.DiagCrossPattern))
        self.colorMode = 'rgb'

        TickSliderItem.__init__(self, *args, **kargs)

        self.colorDialog = QtGui.QColorDialog()
        self.colorDialog.setOption(QtGui.QColorDialog.ShowAlphaChannel, True)
        self.colorDialog.setOption(QtGui.QColorDialog.DontUseNativeDialog,
                                   True)

        self.colorDialog.currentColorChanged.connect(self.currentColorChanged)
        self.colorDialog.rejected.connect(self.currentColorRejected)
        self.colorDialog.accepted.connect(self.currentColorAccepted)

        self.backgroundRect.setParentItem(self)
        self.gradRect.setParentItem(self)

        self.setMaxDim(self.rectSize + self.tickSize)

        self.rgbAction = QtGui.QAction('RGB', self)
        self.rgbAction.setCheckable(True)
        self.rgbAction.triggered.connect(lambda: self.setColorMode('rgb'))
        self.hsvAction = QtGui.QAction('HSV', self)
        self.hsvAction.setCheckable(True)
        self.hsvAction.triggered.connect(lambda: self.setColorMode('hsv'))
        # Because v0.10.0 ColorMap does not support HSV mode
        self.hsvAction.setEnabled(False)

        self.menu = QtGui.QMenu()

        ## build context menu of gradients
        l = self.length
        self.length = 100
        # global Gradients
        if 'gradients' in kargs:
            if kargs['gradients'] is not None:
                self.gradients = kargs['gradients']
            else:
                self.gradients = customGradients
        else:
            self.gradients = customGradients
        for g in self.gradients:
            px = QtGui.QPixmap(100, 15)
            p = QtGui.QPainter(px)
            self.restoreState(self.gradients[g])
            grad = self.getGradient()
            brush = QtGui.QBrush(grad)
            p.fillRect(QtCore.QRect(0, 0, 100, 15), brush)
            p.end()
            label = QtGui.QLabel()
            label.setPixmap(px)
            label.setContentsMargins(1, 1, 1, 1)
            labelName = QtGui.QLabel(g)
            hbox = QtGui.QHBoxLayout()
            hbox.addWidget(labelName)
            hbox.addWidget(label)
            widget = QtGui.QWidget()
            widget.setLayout(hbox)
            act = QtGui.QWidgetAction(self)
            act.setDefaultWidget(widget)
            act.triggered.connect(self.contextMenuClicked)
            act.name = g
            self.menu.addAction(act)
        self.length = l
        self.menu.addSeparator()
        self.menu.addAction(self.rgbAction)
        self.menu.addAction(self.hsvAction)

        for t in list(self.ticks.keys()):
            self.removeTick(t)
        self.addTick(0, QtGui.QColor(0, 0, 0), True)
        self.addTick(1, QtGui.QColor(255, 0, 0), True)
        self.setColorMode('rgb')
        self.updateGradient()
Beispiel #22
0
    def paintEvent(self, e):
        qp = QtGui.QPainter()
        qp.begin(self)

        green = QtGui.QColor(10, 255, 10)
        red = QtGui.QColor(255, 10, 10)
        black = QtGui.QColor(0, 0, 0)
        white = QtGui.QColor(255, 255, 255)

        w = qp.window().width()
        h = qp.window().height()

        # determine the width (x) and height (y) of each bar
        barx = int(w / len(input_name))
        bary = h
        # subtract some padding from each side
        padx = int(barx / 10)
        pady = int(h / 20)
        barx -= 2 * padx
        bary -= 2 * pady

        # this is the position for the first bar
        x = padx

        for name in input_name:
            scale = patch.getfloat('scale', name, default=1)
            offset = patch.getfloat('offset', name, default=0)
            val = patch.getfloat('input', name, default=np.nan)
            val = EEGsynth.rescale(val, slope=scale, offset=offset)

            if debug > 0:
                monitor.update(name, val)

            threshold = patch.getfloat('threshold', name, default=1)
            threshold = EEGsynth.rescale(threshold, slope=scale, offset=offset)

            if val >= 0 and val <= threshold:
                qp.setBrush(green)
                qp.setPen(green)
            else:
                qp.setBrush(red)
                qp.setPen(red)

            if not np.isnan(val):
                val = EEGsynth.limit(val, 0, 1)
                r = QtCore.QRect(x, pady + (1 - val) * bary, barx, val * bary)
                qp.drawRect(r)

            r = QtCore.QRect(x, pady, barx, bary)
            qp.setPen(white)
            qp.drawText(r, QtCore.Qt.AlignCenter | QtCore.Qt.AlignBottom, name)

            # update the position for the next bar
            x += 2 * padx + barx

        # add horizontal lines every 10%
        for i in range(1, 10):
            qp.setPen(black)
            y = h - pady - float(i) / 10 * bary
            qp.drawLine(0, y, w, y)

        qp.end()
        self.show()
Beispiel #23
0
slider1.setTickInterval(1)
slider1.setSingleStep(1)

d5.addWidget(slider1)

#display window
win.show()

#define single line roi
roi1 = pg.LineSegmentROI([[10, 64], [120, 64]], pen='r')
imv1.addItem(roi1)

#define crosshair rois
roi2 = pg.LineSegmentROI([[0, 0], [width, 0]],
                         pen='y',
                         maxBounds=QtCore.QRect(0, 0, 0, height))
imv1.addItem(roi2)

roi3 = pg.LineSegmentROI([[0, 0], [0, height]],
                         pen='y',
                         maxBounds=QtCore.QRect(0, 0, width, 0))
imv1.addItem(roi3)


#define update calls for each roi
def update():
    global data, imv1, imv4
    d1 = roi1.getArrayRegion(data, imv1.imageItem, axes=(1, 2))
    imv4.setImage(d1, autoLevels=False)

    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(662, 231)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.centralwidget)
        self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
        self.label_71 = QtGui.QLabel(self.centralwidget)
        self.label_71.setAlignment(QtCore.Qt.AlignCenter)
        self.label_71.setObjectName(_fromUtf8("label_71"))
        self.verticalLayout_4.addWidget(self.label_71)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 662, 28))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuMenu = QtGui.QMenu(self.menubar)
        self.menuMenu.setObjectName(_fromUtf8("menuMenu"))
        self.menuMenuSub = QtGui.QMenu(self.menuMenu)
        self.menuMenuSub.setObjectName(_fromUtf8("menuMenuSub"))
        self.menuMenuDelayed = QtGui.QMenu(self.menubar)
        self.menuMenuDelayed.setObjectName(_fromUtf8("menuMenuDelayed"))
        self.menuMenuSubDelayed = QtGui.QMenu(self.menuMenuDelayed)
        self.menuMenuSubDelayed.setObjectName(_fromUtf8("menuMenuSubDelayed"))
        self.menuMenuCheckale = QtGui.QMenu(self.menubar)
        self.menuMenuCheckale.setObjectName(_fromUtf8("menuMenuCheckale"))
        self.menuAbout = QtGui.QMenu(self.menubar)
        self.menuAbout.setObjectName(_fromUtf8("menuAbout"))
        self.menuHelp = QtGui.QMenu(self.menubar)
        self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtGui.QToolBar(MainWindow)
        self.toolBar.setObjectName(_fromUtf8("toolBar"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.toolBarDelayed = QtGui.QToolBar(MainWindow)
        self.toolBarDelayed.setObjectName(_fromUtf8("toolBarDelayed"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBarDelayed)
        self.toolBarCheckable = QtGui.QToolBar(MainWindow)
        self.toolBarCheckable.setObjectName(_fromUtf8("toolBarCheckable"))
        MainWindow.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolBarCheckable)
        self.actionActionA = QtGui.QAction(MainWindow)
        self.actionActionA.setObjectName(_fromUtf8("actionActionA"))
        self.actionActionSubA = QtGui.QAction(MainWindow)
        self.actionActionSubA.setObjectName(_fromUtf8("actionActionSubA"))
        self.actionActionSubB = QtGui.QAction(MainWindow)
        self.actionActionSubB.setObjectName(_fromUtf8("actionActionSubB"))
        self.actionActionDelayedA = QtGui.QAction(MainWindow)
        self.actionActionDelayedA.setObjectName(
            _fromUtf8("actionActionDelayedA"))
        self.actionActionDelayedSubA = QtGui.QAction(MainWindow)
        self.actionActionDelayedSubA.setObjectName(
            _fromUtf8("actionActionDelayedSubA"))
        self.actionActionCheckableA = QtGui.QAction(MainWindow)
        self.actionActionCheckableA.setCheckable(True)
        self.actionActionCheckableA.setObjectName(
            _fromUtf8("actionActionCheckableA"))
        self.actionActionCheckableSubAChecked = QtGui.QAction(MainWindow)
        self.actionActionCheckableSubAChecked.setCheckable(True)
        self.actionActionCheckableSubAChecked.setChecked(True)
        self.actionActionCheckableSubAChecked.setObjectName(
            _fromUtf8("actionActionCheckableSubAChecked"))
        self.actionActionCheckableSubAUnchecked = QtGui.QAction(MainWindow)
        self.actionActionCheckableSubAUnchecked.setCheckable(True)
        self.actionActionCheckableSubAUnchecked.setObjectName(
            _fromUtf8("actionActionCheckableSubAUnchecked"))
        self.menuMenuSub.addAction(self.actionActionSubA)
        self.menuMenuSub.addAction(self.actionActionSubB)
        self.menuMenu.addAction(self.actionActionA)
        self.menuMenu.addAction(self.menuMenuSub.menuAction())
        self.menuMenuSubDelayed.addAction(self.actionActionDelayedSubA)
        self.menuMenuDelayed.addAction(self.actionActionDelayedA)
        self.menuMenuDelayed.addAction(self.menuMenuSubDelayed.menuAction())
        self.menuMenuCheckale.addAction(self.actionActionCheckableA)
        self.menubar.addAction(self.menuMenu.menuAction())
        self.menubar.addAction(self.menuMenuDelayed.menuAction())
        self.menubar.addAction(self.menuMenuCheckale.menuAction())
        self.menubar.addAction(self.menuHelp.menuAction())
        self.menubar.addAction(self.menuAbout.menuAction())
        self.toolBar.addAction(self.actionActionA)
        self.toolBar.addSeparator()
        self.toolBar.addAction(self.actionActionSubA)
        self.toolBar.addAction(self.actionActionSubB)
        self.toolBarDelayed.addAction(self.actionActionDelayedA)
        self.toolBarDelayed.addSeparator()
        self.toolBarDelayed.addAction(self.actionActionDelayedSubA)
        self.toolBarCheckable.addAction(self.actionActionCheckableA)
        self.toolBarCheckable.addSeparator()
        self.toolBarCheckable.addAction(self.actionActionCheckableSubAChecked)
        self.toolBarCheckable.addAction(
            self.actionActionCheckableSubAUnchecked)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Beispiel #25
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(742, 439)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.centralwidget)
        self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
        self.groupBox_2 = QtGui.QGroupBox(self.centralwidget)
        self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
        self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.tabWidget = QtGui.QTabWidget(self.groupBox_2)
        self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
        self.tab = QtGui.QWidget()
        self.tab.setObjectName(_fromUtf8("tab"))
        self.tabWidget.addTab(self.tab, _fromUtf8(""))
        self.tab_2 = QtGui.QWidget()
        self.tab_2.setObjectName(_fromUtf8("tab_2"))
        self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
        self.tab_3 = QtGui.QWidget()
        self.tab_3.setObjectName(_fromUtf8("tab_3"))
        self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
        self.tab_4 = QtGui.QWidget()
        self.tab_4.setObjectName(_fromUtf8("tab_4"))
        self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
        self.tab_5 = QtGui.QWidget()
        self.tab_5.setObjectName(_fromUtf8("tab_5"))
        self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
        self.tab_6 = QtGui.QWidget()
        self.tab_6.setObjectName(_fromUtf8("tab_6"))
        self.tabWidget.addTab(self.tab_6, _fromUtf8(""))
        self.tab_7 = QtGui.QWidget()
        self.tab_7.setObjectName(_fromUtf8("tab_7"))
        self.tabWidget.addTab(self.tab_7, _fromUtf8(""))
        self.tab_8 = QtGui.QWidget()
        self.tab_8.setObjectName(_fromUtf8("tab_8"))
        self.tabWidget.addTab(self.tab_8, _fromUtf8(""))
        self.tab_9 = QtGui.QWidget()
        self.tab_9.setObjectName(_fromUtf8("tab_9"))
        self.tabWidget.addTab(self.tab_9, _fromUtf8(""))
        self.tab_10 = QtGui.QWidget()
        self.tab_10.setObjectName(_fromUtf8("tab_10"))
        self.tabWidget.addTab(self.tab_10, _fromUtf8(""))
        self.tab_11 = QtGui.QWidget()
        self.tab_11.setObjectName(_fromUtf8("tab_11"))
        self.tabWidget.addTab(self.tab_11, _fromUtf8(""))
        self.tab_12 = QtGui.QWidget()
        self.tab_12.setObjectName(_fromUtf8("tab_12"))
        self.tabWidget.addTab(self.tab_12, _fromUtf8(""))
        self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
        self.verticalLayout_4.addWidget(self.groupBox_2)
        self.groupBox = QtGui.QGroupBox(self.centralwidget)
        self.groupBox.setObjectName(_fromUtf8("groupBox"))
        self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
        self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
        self.label = QtGui.QLabel(self.groupBox)
        self.label.setTextFormat(QtCore.Qt.RichText)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setWordWrap(True)
        self.label.setOpenExternalLinks(True)
        self.label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
        self.label.setObjectName(_fromUtf8("label"))
        self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
        self.verticalLayout_4.addWidget(self.groupBox)
        self.label_71 = QtGui.QLabel(self.centralwidget)
        self.label_71.setAlignment(QtCore.Qt.AlignCenter)
        self.label_71.setObjectName(_fromUtf8("label_71"))
        self.verticalLayout_4.addWidget(self.label_71)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 742, 28))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuMenu = QtGui.QMenu(self.menubar)
        self.menuMenu.setObjectName(_fromUtf8("menuMenu"))
        self.menuMenuSub = QtGui.QMenu(self.menuMenu)
        self.menuMenuSub.setObjectName(_fromUtf8("menuMenuSub"))
        self.menuMenuDelayed = QtGui.QMenu(self.menubar)
        self.menuMenuDelayed.setObjectName(_fromUtf8("menuMenuDelayed"))
        self.menuMenuSubDelayed = QtGui.QMenu(self.menuMenuDelayed)
        self.menuMenuSubDelayed.setObjectName(_fromUtf8("menuMenuSubDelayed"))
        self.menuMenuCheckale = QtGui.QMenu(self.menubar)
        self.menuMenuCheckale.setObjectName(_fromUtf8("menuMenuCheckale"))
        self.menuAbout = QtGui.QMenu(self.menubar)
        self.menuAbout.setObjectName(_fromUtf8("menuAbout"))
        self.menuHelp = QtGui.QMenu(self.menubar)
        self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtGui.QToolBar(MainWindow)
        self.toolBar.setObjectName(_fromUtf8("toolBar"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.toolBarDelayed = QtGui.QToolBar(MainWindow)
        self.toolBarDelayed.setObjectName(_fromUtf8("toolBarDelayed"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBarDelayed)
        self.toolBarCheckable = QtGui.QToolBar(MainWindow)
        self.toolBarCheckable.setObjectName(_fromUtf8("toolBarCheckable"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBarCheckable)
        MainWindow.insertToolBarBreak(self.toolBarCheckable)
        self.actionActionA = QtGui.QAction(MainWindow)
        self.actionActionA.setObjectName(_fromUtf8("actionActionA"))
        self.actionActionSubA = QtGui.QAction(MainWindow)
        self.actionActionSubA.setObjectName(_fromUtf8("actionActionSubA"))
        self.actionActionSubB = QtGui.QAction(MainWindow)
        self.actionActionSubB.setObjectName(_fromUtf8("actionActionSubB"))
        self.actionActionDelayedA = QtGui.QAction(MainWindow)
        self.actionActionDelayedA.setObjectName(
            _fromUtf8("actionActionDelayedA"))
        self.actionActionDelayedSubA = QtGui.QAction(MainWindow)
        self.actionActionDelayedSubA.setObjectName(
            _fromUtf8("actionActionDelayedSubA"))
        self.actionActionCheckableA = QtGui.QAction(MainWindow)
        self.actionActionCheckableA.setCheckable(True)
        self.actionActionCheckableA.setObjectName(
            _fromUtf8("actionActionCheckableA"))
        self.actionActionCheckableSubAChecked = QtGui.QAction(MainWindow)
        self.actionActionCheckableSubAChecked.setCheckable(True)
        self.actionActionCheckableSubAChecked.setChecked(True)
        self.actionActionCheckableSubAChecked.setObjectName(
            _fromUtf8("actionActionCheckableSubAChecked"))
        self.actionActionCheckableSubAUnchecked = QtGui.QAction(MainWindow)
        self.actionActionCheckableSubAUnchecked.setCheckable(True)
        self.actionActionCheckableSubAUnchecked.setObjectName(
            _fromUtf8("actionActionCheckableSubAUnchecked"))
        self.menuMenuSub.addAction(self.actionActionSubA)
        self.menuMenuSub.addAction(self.actionActionSubB)
        self.menuMenu.addAction(self.actionActionA)
        self.menuMenu.addAction(self.menuMenuSub.menuAction())
        self.menuMenuSubDelayed.addAction(self.actionActionDelayedSubA)
        self.menuMenuDelayed.addAction(self.actionActionDelayedA)
        self.menuMenuDelayed.addAction(self.menuMenuSubDelayed.menuAction())
        self.menuMenuCheckale.addAction(self.actionActionCheckableA)
        self.menubar.addAction(self.menuMenu.menuAction())
        self.menubar.addAction(self.menuMenuDelayed.menuAction())
        self.menubar.addAction(self.menuMenuCheckale.menuAction())
        self.menubar.addAction(self.menuHelp.menuAction())
        self.menubar.addAction(self.menuAbout.menuAction())
        self.toolBar.addAction(self.actionActionA)
        self.toolBar.addSeparator()
        self.toolBar.addAction(self.actionActionSubA)
        self.toolBar.addAction(self.actionActionSubB)
        self.toolBarDelayed.addAction(self.actionActionDelayedA)
        self.toolBarDelayed.addSeparator()
        self.toolBarDelayed.addAction(self.actionActionDelayedSubA)
        self.toolBarCheckable.addAction(self.actionActionCheckableA)
        self.toolBarCheckable.addSeparator()
        self.toolBarCheckable.addAction(self.actionActionCheckableSubAChecked)
        self.toolBarCheckable.addAction(
            self.actionActionCheckableSubAUnchecked)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(11)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Beispiel #26
0
 def heightForWidth(self, width):
     height = self._doLayout(QtCore.QRect(0, 0, width, 0), True)
     return height
    def setupUi(self, DockWidget):
        DockWidget.setObjectName(_fromUtf8("DockWidget"))
        DockWidget.resize(497, 566)
        self.dockWidgetContents = QtGui.QWidget()
        self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents"))
        self.gridLayout_45 = QtGui.QGridLayout(self.dockWidgetContents)
        self.gridLayout_45.setObjectName(_fromUtf8("gridLayout_45"))
        self.label_126 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_126.setFont(font)
        self.label_126.setObjectName(_fromUtf8("label_126"))
        self.gridLayout_45.addWidget(self.label_126, 0, 3, 2, 1)
        self.label_124 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_124.setFont(font)
        self.label_124.setObjectName(_fromUtf8("label_124"))
        self.gridLayout_45.addWidget(self.label_124, 0, 2, 2, 1)
        self.label_133 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_133.setFont(font)
        self.label_133.setObjectName(_fromUtf8("label_133"))
        self.gridLayout_45.addWidget(self.label_133, 8, 0, 1, 2)
        self.groupBoxDis_2 = QtGui.QGroupBox(self.dockWidgetContents)
        self.groupBoxDis_2.setEnabled(False)
        self.groupBoxDis_2.setObjectName(_fromUtf8("groupBoxDis_2"))
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.groupBoxDis_2)
        self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
        self.label_7 = QtGui.QLabel(self.groupBoxDis_2)
        self.label_7.setObjectName(_fromUtf8("label_7"))
        self.verticalLayout_4.addWidget(self.label_7)
        self.gridLayout_45.addWidget(self.groupBoxDis_2, 2, 3, 1, 1)
        self.stackedWidget_2 = QtGui.QStackedWidget(self.dockWidgetContents)
        self.stackedWidget_2.setObjectName(_fromUtf8("stackedWidget_2"))
        self.page1_2 = QtGui.QWidget()
        self.page1_2.setObjectName(_fromUtf8("page1_2"))
        self.gridLayout_35 = QtGui.QGridLayout(self.page1_2)
        self.gridLayout_35.setObjectName(_fromUtf8("gridLayout_35"))
        self.label_57 = QtGui.QLabel(self.page1_2)
        self.label_57.setObjectName(_fromUtf8("label_57"))
        self.gridLayout_35.addWidget(self.label_57, 0, 0, 1, 1)
        self.stackedWidget_2.addWidget(self.page1_2)
        self.page2_2 = QtGui.QWidget()
        self.page2_2.setObjectName(_fromUtf8("page2_2"))
        self.gridLayout_36 = QtGui.QGridLayout(self.page2_2)
        self.gridLayout_36.setObjectName(_fromUtf8("gridLayout_36"))
        self.label_58 = QtGui.QLabel(self.page2_2)
        self.label_58.setObjectName(_fromUtf8("label_58"))
        self.gridLayout_36.addWidget(self.label_58, 0, 0, 1, 1)
        self.stackedWidget_2.addWidget(self.page2_2)
        self.gridLayout_45.addWidget(self.stackedWidget_2, 5, 2, 1, 1)
        self.stackedWidgetDis_2 = QtGui.QStackedWidget(self.dockWidgetContents)
        self.stackedWidgetDis_2.setEnabled(False)
        self.stackedWidgetDis_2.setObjectName(_fromUtf8("stackedWidgetDis_2"))
        self.page1Dis_2 = QtGui.QWidget()
        self.page1Dis_2.setObjectName(_fromUtf8("page1Dis_2"))
        self.gridLayout_37 = QtGui.QGridLayout(self.page1Dis_2)
        self.gridLayout_37.setObjectName(_fromUtf8("gridLayout_37"))
        self.label_113 = QtGui.QLabel(self.page1Dis_2)
        self.label_113.setObjectName(_fromUtf8("label_113"))
        self.gridLayout_37.addWidget(self.label_113, 0, 0, 1, 1)
        self.stackedWidgetDis_2.addWidget(self.page1Dis_2)
        self.page2Dis_2 = QtGui.QWidget()
        self.page2Dis_2.setObjectName(_fromUtf8("page2Dis_2"))
        self.gridLayout_38 = QtGui.QGridLayout(self.page2Dis_2)
        self.gridLayout_38.setObjectName(_fromUtf8("gridLayout_38"))
        self.label_114 = QtGui.QLabel(self.page2Dis_2)
        self.label_114.setObjectName(_fromUtf8("label_114"))
        self.gridLayout_38.addWidget(self.label_114, 0, 0, 1, 1)
        self.stackedWidgetDis_2.addWidget(self.page2Dis_2)
        self.gridLayout_45.addWidget(self.stackedWidgetDis_2, 5, 3, 1, 1)
        self.label_131 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_131.setFont(font)
        self.label_131.setObjectName(_fromUtf8("label_131"))
        self.gridLayout_45.addWidget(self.label_131, 6, 0, 1, 1)
        self.frame_2 = QtGui.QFrame(self.dockWidgetContents)
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName(_fromUtf8("frame_2"))
        self.gridLayout_43 = QtGui.QGridLayout(self.frame_2)
        self.gridLayout_43.setObjectName(_fromUtf8("gridLayout_43"))
        self.label_9 = QtGui.QLabel(self.frame_2)
        self.label_9.setObjectName(_fromUtf8("label_9"))
        self.gridLayout_43.addWidget(self.label_9, 0, 0, 1, 1)
        self.gridLayout_45.addWidget(self.frame_2, 6, 2, 1, 1)
        self.frameDis_2 = QtGui.QFrame(self.dockWidgetContents)
        self.frameDis_2.setEnabled(False)
        self.frameDis_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frameDis_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frameDis_2.setObjectName(_fromUtf8("frameDis_2"))
        self.gridLayout_40 = QtGui.QGridLayout(self.frameDis_2)
        self.gridLayout_40.setObjectName(_fromUtf8("gridLayout_40"))
        self.label_8 = QtGui.QLabel(self.frameDis_2)
        self.label_8.setObjectName(_fromUtf8("label_8"))
        self.gridLayout_40.addWidget(self.label_8, 0, 0, 1, 1)
        self.gridLayout_45.addWidget(self.frameDis_2, 6, 3, 1, 1)
        self.label_132 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_132.setFont(font)
        self.label_132.setObjectName(_fromUtf8("label_132"))
        self.gridLayout_45.addWidget(self.label_132, 7, 0, 1, 2)
        self.groupBox_2 = QtGui.QGroupBox(self.dockWidgetContents)
        self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
        self.gridLayout_7 = QtGui.QGridLayout(self.groupBox_2)
        self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
        self.label_10 = QtGui.QLabel(self.groupBox_2)
        self.label_10.setObjectName(_fromUtf8("label_10"))
        self.gridLayout_7.addWidget(self.label_10, 0, 0, 1, 1)
        self.gridLayout_45.addWidget(self.groupBox_2, 2, 2, 1, 1)
        self.mdiAreaDis_2 = QtGui.QMdiArea(self.dockWidgetContents)
        self.mdiAreaDis_2.setEnabled(False)
        self.mdiAreaDis_2.setObjectName(_fromUtf8("mdiAreaDis_2"))
        self.subwindow1Dis_2 = QtGui.QWidget()
        self.subwindow1Dis_2.setObjectName(_fromUtf8("subwindow1Dis_2"))
        self.verticalLayout_9 = QtGui.QVBoxLayout(self.subwindow1Dis_2)
        self.verticalLayout_9.setObjectName(_fromUtf8("verticalLayout_9"))
        self.label_111 = QtGui.QLabel(self.subwindow1Dis_2)
        self.label_111.setObjectName(_fromUtf8("label_111"))
        self.verticalLayout_9.addWidget(self.label_111)
        self.subwindow2Dis_2 = QtGui.QWidget()
        self.subwindow2Dis_2.setObjectName(_fromUtf8("subwindow2Dis_2"))
        self.verticalLayout_10 = QtGui.QVBoxLayout(self.subwindow2Dis_2)
        self.verticalLayout_10.setObjectName(_fromUtf8("verticalLayout_10"))
        self.label_112 = QtGui.QLabel(self.subwindow2Dis_2)
        self.label_112.setObjectName(_fromUtf8("label_112"))
        self.verticalLayout_10.addWidget(self.label_112)
        self.gridLayout_45.addWidget(self.mdiAreaDis_2, 8, 3, 1, 1)
        self.label_127 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_127.setFont(font)
        self.label_127.setObjectName(_fromUtf8("label_127"))
        self.gridLayout_45.addWidget(self.label_127, 2, 0, 1, 2)
        self.widget_2 = QtGui.QWidget(self.dockWidgetContents)
        self.widget_2.setObjectName(_fromUtf8("widget_2"))
        self.gridLayout_39 = QtGui.QGridLayout(self.widget_2)
        self.gridLayout_39.setObjectName(_fromUtf8("gridLayout_39"))
        self.label_59 = QtGui.QLabel(self.widget_2)
        self.label_59.setObjectName(_fromUtf8("label_59"))
        self.gridLayout_39.addWidget(self.label_59, 0, 0, 1, 1)
        self.gridLayout_45.addWidget(self.widget_2, 7, 2, 1, 1)
        self.widgetDis_2 = QtGui.QWidget(self.dockWidgetContents)
        self.widgetDis_2.setEnabled(False)
        self.widgetDis_2.setObjectName(_fromUtf8("widgetDis_2"))
        self.gridLayout_44 = QtGui.QGridLayout(self.widgetDis_2)
        self.gridLayout_44.setObjectName(_fromUtf8("gridLayout_44"))
        self.label_125 = QtGui.QLabel(self.widgetDis_2)
        self.label_125.setObjectName(_fromUtf8("label_125"))
        self.gridLayout_44.addWidget(self.label_125, 0, 0, 1, 1)
        self.gridLayout_45.addWidget(self.widgetDis_2, 7, 3, 1, 1)
        self.mdiArea_2 = QtGui.QMdiArea(self.dockWidgetContents)
        self.mdiArea_2.setObjectName(_fromUtf8("mdiArea_2"))
        self.subwindow1_2 = QtGui.QWidget()
        self.subwindow1_2.setObjectName(_fromUtf8("subwindow1_2"))
        self.verticalLayout_11 = QtGui.QVBoxLayout(self.subwindow1_2)
        self.verticalLayout_11.setObjectName(_fromUtf8("verticalLayout_11"))
        self.label_29 = QtGui.QLabel(self.subwindow1_2)
        self.label_29.setObjectName(_fromUtf8("label_29"))
        self.verticalLayout_11.addWidget(self.label_29)
        self.subwindow2_2 = QtGui.QWidget()
        self.subwindow2_2.setObjectName(_fromUtf8("subwindow2_2"))
        self.verticalLayout_12 = QtGui.QVBoxLayout(self.subwindow2_2)
        self.verticalLayout_12.setObjectName(_fromUtf8("verticalLayout_12"))
        self.label_56 = QtGui.QLabel(self.subwindow2_2)
        self.label_56.setObjectName(_fromUtf8("label_56"))
        self.verticalLayout_12.addWidget(self.label_56)
        self.gridLayout_45.addWidget(self.mdiArea_2, 8, 2, 1, 1)
        self.label_128 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_128.setFont(font)
        self.label_128.setObjectName(_fromUtf8("label_128"))
        self.gridLayout_45.addWidget(self.label_128, 3, 0, 1, 2)
        self.scrollArea_2 = QtGui.QScrollArea(self.dockWidgetContents)
        self.scrollArea_2.setWidgetResizable(True)
        self.scrollArea_2.setObjectName(_fromUtf8("scrollArea_2"))
        self.scrollAreaWidgetContents_2 = QtGui.QWidget()
        self.scrollAreaWidgetContents_2.setGeometry(
            QtCore.QRect(0, 0, 181, 246))
        self.scrollAreaWidgetContents_2.setObjectName(
            _fromUtf8("scrollAreaWidgetContents_2"))
        self.verticalLayout_14 = QtGui.QVBoxLayout(
            self.scrollAreaWidgetContents_2)
        self.verticalLayout_14.setObjectName(_fromUtf8("verticalLayout_14"))
        self.label_70 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_70.setObjectName(_fromUtf8("label_70"))
        self.verticalLayout_14.addWidget(self.label_70)
        self.label_71 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_71.setObjectName(_fromUtf8("label_71"))
        self.verticalLayout_14.addWidget(self.label_71)
        self.label_75 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_75.setObjectName(_fromUtf8("label_75"))
        self.verticalLayout_14.addWidget(self.label_75)
        self.label_76 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_76.setObjectName(_fromUtf8("label_76"))
        self.verticalLayout_14.addWidget(self.label_76)
        self.label_77 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_77.setObjectName(_fromUtf8("label_77"))
        self.verticalLayout_14.addWidget(self.label_77)
        self.label_78 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_78.setObjectName(_fromUtf8("label_78"))
        self.verticalLayout_14.addWidget(self.label_78)
        self.label_79 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_79.setObjectName(_fromUtf8("label_79"))
        self.verticalLayout_14.addWidget(self.label_79)
        self.label_80 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_80.setObjectName(_fromUtf8("label_80"))
        self.verticalLayout_14.addWidget(self.label_80)
        self.label_81 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.label_81.setObjectName(_fromUtf8("label_81"))
        self.verticalLayout_14.addWidget(self.label_81)
        self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
        self.gridLayout_45.addWidget(self.scrollArea_2, 3, 2, 1, 1)
        self.scrollAreaDis_2 = QtGui.QScrollArea(self.dockWidgetContents)
        self.scrollAreaDis_2.setEnabled(False)
        self.scrollAreaDis_2.setWidgetResizable(True)
        self.scrollAreaDis_2.setObjectName(_fromUtf8("scrollAreaDis_2"))
        self.scrollAreaWidgetContentsDis_2 = QtGui.QWidget()
        self.scrollAreaWidgetContentsDis_2.setGeometry(
            QtCore.QRect(0, 0, 181, 246))
        self.scrollAreaWidgetContentsDis_2.setObjectName(
            _fromUtf8("scrollAreaWidgetContentsDis_2"))
        self.verticalLayout_13 = QtGui.QVBoxLayout(
            self.scrollAreaWidgetContentsDis_2)
        self.verticalLayout_13.setObjectName(_fromUtf8("verticalLayout_13"))
        self.label_115 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_115.setObjectName(_fromUtf8("label_115"))
        self.verticalLayout_13.addWidget(self.label_115)
        self.label_116 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_116.setObjectName(_fromUtf8("label_116"))
        self.verticalLayout_13.addWidget(self.label_116)
        self.label_117 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_117.setObjectName(_fromUtf8("label_117"))
        self.verticalLayout_13.addWidget(self.label_117)
        self.label_118 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_118.setObjectName(_fromUtf8("label_118"))
        self.verticalLayout_13.addWidget(self.label_118)
        self.label_119 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_119.setObjectName(_fromUtf8("label_119"))
        self.verticalLayout_13.addWidget(self.label_119)
        self.label_120 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_120.setObjectName(_fromUtf8("label_120"))
        self.verticalLayout_13.addWidget(self.label_120)
        self.label_121 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_121.setObjectName(_fromUtf8("label_121"))
        self.verticalLayout_13.addWidget(self.label_121)
        self.label_122 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_122.setObjectName(_fromUtf8("label_122"))
        self.verticalLayout_13.addWidget(self.label_122)
        self.label_123 = QtGui.QLabel(self.scrollAreaWidgetContentsDis_2)
        self.label_123.setObjectName(_fromUtf8("label_123"))
        self.verticalLayout_13.addWidget(self.label_123)
        self.scrollAreaDis_2.setWidget(self.scrollAreaWidgetContentsDis_2)
        self.gridLayout_45.addWidget(self.scrollAreaDis_2, 3, 3, 1, 1)
        self.label_129 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_129.setFont(font)
        self.label_129.setObjectName(_fromUtf8("label_129"))
        self.gridLayout_45.addWidget(self.label_129, 4, 0, 1, 2)
        self.toolBox_2 = QtGui.QToolBox(self.dockWidgetContents)
        self.toolBox_2.setObjectName(_fromUtf8("toolBox_2"))
        self.page_3 = QtGui.QWidget()
        self.page_3.setGeometry(QtCore.QRect(0, 0, 196, 73))
        self.page_3.setObjectName(_fromUtf8("page_3"))
        self.gridLayout_41 = QtGui.QGridLayout(self.page_3)
        self.gridLayout_41.setObjectName(_fromUtf8("gridLayout_41"))
        self.label_60 = QtGui.QLabel(self.page_3)
        self.label_60.setObjectName(_fromUtf8("label_60"))
        self.gridLayout_41.addWidget(self.label_60, 2, 0, 1, 1)
        self.toolBox_2.addItem(self.page_3, _fromUtf8(""))
        self.page_8 = QtGui.QWidget()
        self.page_8.setGeometry(QtCore.QRect(0, 0, 163, 38))
        self.page_8.setObjectName(_fromUtf8("page_8"))
        self.gridLayout_42 = QtGui.QGridLayout(self.page_8)
        self.gridLayout_42.setObjectName(_fromUtf8("gridLayout_42"))
        self.label_61 = QtGui.QLabel(self.page_8)
        self.label_61.setObjectName(_fromUtf8("label_61"))
        self.gridLayout_42.addWidget(self.label_61, 0, 0, 1, 1)
        self.toolBox_2.addItem(self.page_8, _fromUtf8(""))
        self.gridLayout_45.addWidget(self.toolBox_2, 4, 2, 1, 1)
        self.toolBoxDis_2 = QtGui.QToolBox(self.dockWidgetContents)
        self.toolBoxDis_2.setEnabled(False)
        self.toolBoxDis_2.setObjectName(_fromUtf8("toolBoxDis_2"))
        self.page_6 = QtGui.QWidget()
        self.page_6.setGeometry(QtCore.QRect(0, 0, 196, 73))
        self.page_6.setObjectName(_fromUtf8("page_6"))
        self.gridLayout_29 = QtGui.QGridLayout(self.page_6)
        self.gridLayout_29.setObjectName(_fromUtf8("gridLayout_29"))
        self.label_109 = QtGui.QLabel(self.page_6)
        self.label_109.setObjectName(_fromUtf8("label_109"))
        self.gridLayout_29.addWidget(self.label_109, 2, 0, 1, 1)
        self.toolBoxDis_2.addItem(self.page_6, _fromUtf8(""))
        self.page_7 = QtGui.QWidget()
        self.page_7.setGeometry(QtCore.QRect(0, 0, 163, 38))
        self.page_7.setObjectName(_fromUtf8("page_7"))
        self.gridLayout_34 = QtGui.QGridLayout(self.page_7)
        self.gridLayout_34.setObjectName(_fromUtf8("gridLayout_34"))
        self.label_110 = QtGui.QLabel(self.page_7)
        self.label_110.setObjectName(_fromUtf8("label_110"))
        self.gridLayout_34.addWidget(self.label_110, 0, 0, 1, 1)
        self.toolBoxDis_2.addItem(self.page_7, _fromUtf8(""))
        self.gridLayout_45.addWidget(self.toolBoxDis_2, 4, 3, 1, 1)
        self.label_130 = QtGui.QLabel(self.dockWidgetContents)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_130.setFont(font)
        self.label_130.setObjectName(_fromUtf8("label_130"))
        self.gridLayout_45.addWidget(self.label_130, 5, 0, 1, 2)
        DockWidget.setWidget(self.dockWidgetContents)

        self.retranslateUi(DockWidget)
        self.stackedWidget_2.setCurrentIndex(1)
        self.stackedWidgetDis_2.setCurrentIndex(1)
        self.toolBox_2.setCurrentIndex(0)
        self.toolBoxDis_2.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(DockWidget)
Beispiel #28
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.cap = None
        self.filename=None
        self.line1_x=300
        self.line2_x=600
        self.magnification=1
        
        self.resize(400, 800)
        
        self.videoSize = QtGui.QComboBox(self)
        self.videoSize.addItem("1X")
        self.videoSize.addItem("1.5X")
        self.videoSize.addItem("2X")
        self.videoSize.addItem("3X")
        self.videoSize.addItem("4X")
        self.videoSize.setCurrentIndex(0)
        self.videoSize.setEnabled(True)
        self.videoSize.activated.connect(self.magnific)
        self.videoSize.setGeometry(QtCore.QRect(675, 30, 50, 20))

        self.LablePath = QtGui.QLineEdit(self)
        self.LablePath.setEnabled(False)
        self.LablePath.setGeometry(QtCore.QRect(90, 10, 641, 20))
        self.LablePath.setFrame(False)
        
        self.LableCamera = QtGui.QLineEdit(self)
        self.LableCamera.setEnabled(False)
        self.LableCamera.setGeometry(QtCore.QRect(675, 10, 50, 20))
        self.LableCamera.setFrame(False)
        self.LableCamera.setText("Camera:")
        
        self.Camera = QtGui.QComboBox(self)
        self.Camera.addItem("Left")
        self.Camera.addItem("Right")
        self.Camera.setEnabled(True)
        self.Camera.setGeometry(QtCore.QRect(675, 30, 50, 20))
        
        self.LableRatL = QtGui.QLineEdit(self)
        self.LableRatL.setEnabled(False)
        self.LableRatL.setGeometry(QtCore.QRect(735, 10, 50, 20))
        self.LableRatL.setFrame(False)
        self.LableRatL.setText("Rat L:")
        
        self.LableRat1 = QtGui.QLineEdit(self)
        self.LableRat1.setEnabled(True)
        self.LableRat1.setText("0")
        self.LableRat1.setGeometry(QtCore.QRect(735, 30, 40, 20))
        self.LableRat1.setFrame(True)
        
        self.LableRatM = QtGui.QLineEdit(self)
        self.LableRatM.setEnabled(False)
        self.LableRatM.setGeometry(QtCore.QRect(785, 10, 50, 20))
        self.LableRatM.setFrame(False)
        self.LableRatM.setText("Rat M:")
        
        self.LableRat2 = QtGui.QLineEdit(self)
        self.LableRat2.setEnabled(True)
        self.LableRat2.setText("0")
        self.LableRat2.setGeometry(QtCore.QRect(785, 30, 40, 20))
        self.LableRat2.setFrame(True)
        
        self.LableRatR = QtGui.QLineEdit(self)
        self.LableRatR.setEnabled(False)
        self.LableRatR.setGeometry(QtCore.QRect(835, 10, 50, 20))
        self.LableRatR.setFrame(False)
        self.LableRatR.setText("Rat R:")
        
        self.LableRat3 = QtGui.QLineEdit(self)
        self.LableRat3.setEnabled(True)
        self.LableRat3.setText("0")
        self.LableRat3.setGeometry(QtCore.QRect(835, 30, 40, 20))
        self.LableRat3.setFrame(True)
        
        self.Table = QtGui.QTableWidget(self)
        self.Table.setGeometry(QtCore.QRect(675, 60,235, 560))
        self.Table.setColumnCount(5)
        self.Table.resizeRowsToContents()
#        self.Table.keyPressEvent=self.keyPressEvent
        self.Table.itemClicked.connect(self.tableClick)
#        self.Table.mousePressEvent=self.tableClick
        self.Table.setHorizontalHeaderLabels(["Frame","Time(ms)", "Rat "+self.LableRat1.text(),"Rat "+self.LableRat2.text(),"Rat "+self.LableRat3.text()])
        self.Table.resizeColumnsToContents()
        self.Table.verticalHeader().setVisible(False)
        
        self.TableSumary = QtGui.QTableWidget(self)
        self.TableSumary.setGeometry(QtCore.QRect(300, 530,340,110))
        self.TableSumary.setEnabled(False)
        self.TableSumary.setColumnCount(8)
        self.TableSumary.setRowCount(3)
        self.TableSumary.resizeRowsToContents()
        self.TableSumary.setVerticalHeaderLabels(["Rat "+self.LableRat1.text(),"Rat "+self.LableRat2.text(),"Rat "+self.LableRat3.text()])
        self.TableSumary.setHorizontalHeaderLabels(["X0", "T", "K", "D", "S", "I", "Attempts", "Trials"])
        self.TableSumary.resizeColumnsToContents()        
        self.TableSumary.resizeRowsToContents()
        
        for i in range (0, 3):
            for j in range (0,8):
                newitem = QtGui.QTableWidgetItem("0")
                self.TableSumary.setItem(i, j, newitem)        
        
        self.open_button = QtGui.QPushButton(self)
        self.open_button.setText("Open Video")
        self.open_button.clicked.connect(self.getfile)
        self.open_button.setGeometry(QtCore.QRect(9, 9, 75, 23))
        
        self.save_button = QtGui.QPushButton(self)
        self.save_button.setText("Save data")
        self.save_button.clicked.connect(self.handleSave)
        self.save_button.setGeometry(QtCore.QRect(575, 9, 75, 23))
        
        self.play_button = QtGui.QPushButton(self)
        self.play_button.setText("Play")
        self.play_button.clicked.connect(self.playBtn)
        self.play_button.setGeometry(QtCore.QRect(9, 530, 75, 23))
        
        self.nplay_button = QtGui.QRadioButton(self)
        self.nplay_button.setText("Normal")
        self.nplay_button.setGeometry(QtCore.QRect(90, 530, 75, 23))
        
        self.fplay_button = QtGui.QRadioButton(self)
        self.fplay_button.setText("Fast")
        self.fplay_button.setChecked(True)
        self.fplay_button.setGeometry(QtCore.QRect(150, 530, 75, 23))
        
       
        self.LableRat1.textChanged.connect(self.tableHeader)
        self.LableRat2.textChanged.connect(self.tableHeader)
        self.LableRat3.textChanged.connect(self.tableHeader)
               
        layout = QtGui.QGridLayout()
        self.setLayout(layout)
        
        layout.addWidget(self.open_button,0,0)
        layout.addWidget(self.videoSize,0,5)
        layout.addWidget(self.LablePath,0,1)
        layout.addWidget(self.save_button,10,5)
        layout.addWidget(self.play_button,10,0)
        layout.addWidget(self.nplay_button,10,1)
        layout.addWidget(self.fplay_button,10,2)
        layout.addWidget(self.LableCamera, 10,3)
        layout.addWidget(self.Camera,10,4)
        layout.addWidget(self.LableRatL,1,0)
        layout.addWidget(self.LableRat1,1,1)
        layout.addWidget(self.LableRatM,1,2)
        layout.addWidget(self.LableRat2,1,3)
        layout.addWidget(self.LableRatR,1,4)
        layout.addWidget(self.LableRat3,1,5)
        layout.addWidget(self.TableSumary,2,0,2,6)
        layout.addWidget(self.Table,4,0,6,6)
        
        self.setWindowTitle('Control Panel')
        self.show()
Beispiel #29
0
 def __init__(self, parent=None):
     #self.robot = None
     self.ui = Ui_regbot()
     self.robot = URobot(self, self.ui)
     QtGui.QWidget.__init__(self, parent)
     self.robot.init()
     #self.ui = Ui_regbot()
     self.ui.setupUi(self)
     self.robot.configurationFileLoadDef(True)
     self.robot.imu.initGraph()
     self.robot.drive.initGraph()
     #QDialog.__init__(self, parent)
     #print("starting ...")
     self.timer = QtCore.QTimer(self)
     #self.timer = QTimer(self)
     self.timer.timeout.connect(self.robot.timerUpdate)
     self.ui.statusbar.showMessage("Robot client starting ...", 6000)
     # add usb connection frame
     self.usb_paint_space = UsbPaintSpace(self.ui.frame_usb_connect,
                                          self.robot)
     self.usb_paint_space.setGeometry(QtCore.QRect(0, 0, 350, 100))
     self.usb_paint_space.setFocusPolicy(QtCore.Qt.NoFocus)
     self.usb_paint_space.lower()
     #self.usb_paint_space.setUI(self.ui)
     # paint wifi connection frame
     self.wifi_paint_space = WifiPaintSpace(self.ui.frame_wifi_connect,
                                            self.robot)
     self.wifi_paint_space.setGeometry(QtCore.QRect(0, 0, 350, 100))
     self.wifi_paint_space.setFocusPolicy(QtCore.Qt.NoFocus)
     self.wifi_paint_space.lower()
     # paint wifi connection frame
     self.ctrl_paint_space = ControlPaintSpace(self.ui.frame_ctrl,
                                               self.robot)
     self.ctrl_paint_space.setGeometry(QtCore.QRect(0, 0, 600, 600))
     self.ctrl_paint_space.setFocusPolicy(QtCore.Qt.NoFocus)
     self.ctrl_paint_space.lower()
     ## wall follow
     #self.wall_paint_space = PaintWallSpace(self.ui.wall_control_frame, self.robot)
     #self.wall_paint_space.setGeometry(QtCore.QRect(0, 0, 680, 520))
     #self.wall_paint_space.setFocusPolicy(QtCore.Qt.NoFocus)
     #self.wall_paint_space.lower()
     # self.turn_paint_space.setFocusProxy(self.ui.turn_regul_frame)
     # paint background lightGray
     p = self.ui.centralwidget.palette()
     p.setColor(self.ui.centralwidget.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.centralwidget.setPalette(p)
     self.ui.centralwidget.setAutoFillBackground(True)
     #
     p = self.ui.main.palette()  # main
     p.setColor(self.ui.main.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.main.setPalette(p)
     self.ui.main.setAutoFillBackground(True)
     #
     p = self.ui.tab.palette()  # log
     p.setColor(self.ui.tab.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab.setPalette(p)
     self.ui.tab.setAutoFillBackground(True)
     #
     p = self.ui.tab_2.palette()  # robot
     p.setColor(self.ui.tab_2.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_2.setPalette(p)
     self.ui.tab_2.setAutoFillBackground(True)
     #
     p = self.ui.tab_3.palette()  # IMU
     p.setColor(self.ui.tab_3.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_3.setPalette(p)
     self.ui.tab_3.setAutoFillBackground(True)
     #
     p = self.ui.tab_6.palette()  # mission
     p.setColor(self.ui.tab_6.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_6.setPalette(p)
     self.ui.tab_6.setAutoFillBackground(True)
     #
     p = self.ui.tab_control.palette()
     p.setColor(self.ui.tab_control.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_control.setPalette(p)
     self.ui.tab_control.setAutoFillBackground(True)
     #
     #p = self.ui.tab_9.palette()
     #p.setColor(self.ui.tab_9.backgroundRole(), QtCore.Qt.lightGray)
     #self.ui.tab_9.setPalette(p)
     #self.ui.tab_9.setAutoFillBackground(True)
     #
     p = self.ui.tab_10.palette()  # Edge tab
     p.setColor(self.ui.tab_10.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_10.setPalette(p)
     self.ui.tab_10.setAutoFillBackground(True)
     #
     p = self.ui.tab_11.palette()  # IR distance
     p.setColor(self.ui.tab_11.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.tab_11.setPalette(p)
     self.ui.tab_11.setAutoFillBackground(True)
     #
     #p = self.ui.reg_vel_frame.palette()
     #p.setColor(self.ui.reg_vel_frame.backgroundRole(), QtCore.Qt.lightGray)
     #self.ui.reg_vel_frame.setPalette(p)
     #self.ui.reg_vel_frame.setAutoFillBackground(True)
     #
     p = self.ui.log_options.palette()
     p.setColor(self.ui.log_options.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.log_options.setPalette(p)
     self.ui.log_options.setAutoFillBackground(True)
     #
     p = self.ui.frame_5.palette()
     p.setColor(self.ui.frame_5.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_5.setPalette(p)
     self.ui.frame_5.setAutoFillBackground(True)
     #
     p = self.ui.frame_12.palette()
     p.setColor(self.ui.frame_12.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_12.setPalette(p)
     self.ui.frame_12.setAutoFillBackground(True)
     #
     p = self.ui.frame_8.palette()
     p.setColor(self.ui.frame_8.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_8.setPalette(p)
     self.ui.frame_8.setAutoFillBackground(True)
     #
     p = self.ui.frame_3.palette()
     p.setColor(self.ui.frame_3.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_3.setPalette(p)
     self.ui.frame_3.setAutoFillBackground(True)
     #
     p = self.ui.frame_6.palette()
     p.setColor(self.ui.frame_6.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_6.setPalette(p)
     self.ui.frame_6.setAutoFillBackground(True)
     #
     p = self.ui.frame_9.palette()
     p.setColor(self.ui.frame_9.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_9.setPalette(p)
     self.ui.frame_9.setAutoFillBackground(True)
     #
     p = self.ui.frame_10.palette()
     p.setColor(self.ui.frame_10.backgroundRole(), QtCore.Qt.lightGray)
     self.ui.frame_10.setPalette(p)
     self.ui.frame_10.setAutoFillBackground(True)
     # battery and time frame can be yellow or red
     self.ui.frame_batt_time.setAutoFillBackground(True)
     # set start tab
     self.ui.tabPages.setCurrentIndex(self.getIndex(2))
     # set software version number
     #self.ui.robot_me_version.setText("client sw " + robot.clientVersion())
     self.timer.start(50)  # value in ms
     # event connections
     self.ui.main_help.clicked.connect(self.robot.mainSettingHelp)
     self.ui.main_status_clear.clicked.connect(self.robot.mainStatusClear)
     self.ui.main_start.clicked.connect(self.robot.mainSettingStart)
     self.ui.main_stop.clicked.connect(self.robot.mainSettingStop)
     #self.ui.main_status_while_running.stateChanged.connect(self.robot.statusWhileRunning)
     #self.ui.main_start_2.clicked.connect(self.robot.mainSettingStart)
     #self.ui.log_flag_apply.clicked.connect(self.robot.logFlagApply)
     self.ui.tabPages.currentChanged.connect(self.tabPageFocusChanged)
     # menu actions
     self.ui.actionQuit.triggered.connect(self.stop)
     self.ui.actionAbout.triggered.connect(self.menuAbout)
     self.ui.actionDebug.triggered.connect(self.menuShowDebug)
     self.ui.actionWifi.triggered.connect(self.menuShowWiFi)
     self.ui.actionLog.triggered.connect(self.menuShowLog)
     self.ui.actionRobot.triggered.connect(self.menuShowRobot)
     self.ui.actionIMU.triggered.connect(self.menuShowIMU)
     self.ui.actionLine.triggered.connect(self.menuShowLine)
     self.ui.actionDistance.triggered.connect(self.menuShowDist)
     self.ui.actionControl.triggered.connect(self.menuShowControl)
     self.ui.actionMission.triggered.connect(self.menuShowMission)
     self.ui.actionServo.triggered.connect(self.menuShowServo)
     self.ui.actionShow_all.triggered.connect(self.menuShowAll)
     self.ui.actionHide_most.triggered.connect(self.menuHideMost)
     #
     self.ui.connect_usb.clicked.connect(self.robot.connect_usb_changed)
     self.ui.connect_wifi.clicked.connect(self.robot.connect_wifi_changed)
     self.ui.ir_apply.clicked.connect(self.robot.irDist.paramApplyCal)
     self.ui.ir_cancel.clicked.connect(self.robot.irDist.paramCancelCal)
     self.ui.ir_edit.clicked.connect(self.robot.irDist.dataEditCal)
     self.ui.ir_d1_20cm.valueChanged.connect(self.robot.irDist.dataEditCal)
     self.ui.ir_d1_80cm.valueChanged.connect(self.robot.irDist.dataEditCal)
     self.ui.ir_d2_20cm.valueChanged.connect(self.robot.irDist.dataEditCal)
     self.ui.ir_d2_80cm.valueChanged.connect(self.robot.irDist.dataEditCal)
     self.ui.checkBox_ir_use.clicked.connect(self.robot.irDist.dataEditCal)
     # gyro
     self.ui.imu_gyro_calibrate.clicked.connect(self.robot.doGyroOffset)
     # Edge/line sensor
     self.ui.line_disp_max_value.valueChanged.connect(
         self.robot.lineSensor.max_value_changed)
     self.ui.ls_use_sensor.clicked.connect(
         self.robot.lineSensor.setWhiteLine)
     self.ui.ls_line_white.clicked.connect(
         self.robot.lineSensor.setWhiteLine)
     self.ui.ls_power_auto.clicked.connect(
         self.robot.lineSensor.setWhiteLine)
     self.ui.ls_power_high.clicked.connect(
         self.robot.lineSensor.setWhiteLine)
     self.ui.ls_calibrate_white.clicked.connect(
         self.robot.lineSensor.calibrateWhite)
     self.ui.ls_calibrate_black.clicked.connect(
         self.robot.lineSensor.calibrateBlack)
     # main status
     self.ui.main_send_cmd.clicked.connect(self.robot.sendCmd)
     # - when return is pressed in line edit
     self.ui.main_send_txt.returnPressed.connect(self.robot.sendCmd)
     self.ui.main_mission_2.valueChanged.connect(
         self.robot.mission.dataChangedManually)
     self.ui.main_mission_2.valueChanged.connect(
         self.robot.mainMissionChanged2)
     #self.ui.main_push_interval.valueChanged.connect(self.robot.mainPushInterval)
     #self.ui.main_status_stop.clicked.connect(self.robot.mainStatusStop)
     #self.ui.main_status_start.clicked.connect(self.robot.mainStatusStart)
     # config save/load
     #self.ui.config_file_load.clicked.connect(self.robot.configurationFileLoadDef)
     #self.ui.config_file_save.clicked.connect(self.robot.configurationFileSaveDef)
     self.ui.config_robot_save.clicked.connect(
         self.robot.configurationRobotSave)
     self.ui.actionLoad_configuration.triggered.connect(
         self.robot.configurationFileLoadDef)
     #self.ui.actionLoad_configuration_from.triggered.connect(self.robot.configurationFileLoadFrom)
     self.ui.actionSave_configuration.triggered.connect(
         self.robot.configurationFileSaveDef)
     #self.ui.actionSave_configuration_as.triggered.connect(self.robot.configurationFileSaveAs)
     # robot
     self.ui.robot_pose_reset.clicked.connect(self.robot.robotPoseReset)
     #log
     self.ui.log_lac.stateChanged.connect(self.robot.setLogFlag_lac)
     self.ui.log_lbt.stateChanged.connect(self.robot.setLogFlag_lbt)
     self.ui.log_line.stateChanged.connect(self.robot.setLogFlag_line)
     self.ui.log_distance.stateChanged.connect(self.robot.setLogFlag_dist)
     self.ui.log_turn_rate.stateChanged.connect(self.robot.setLogFlag_ltr)
     #self.ui.log_lbc.stateChanged.connect(self.robot.setLogFlag_lbc)
     self.ui.log_lct.stateChanged.connect(self.robot.setLogFlag_lct)
     self.ui.log_lgy.stateChanged.connect(self.robot.setLogFlag_lgy)
     self.ui.log_lma.stateChanged.connect(self.robot.setLogFlag_lma)
     self.ui.log_lme.stateChanged.connect(self.robot.setLogFlag_lme)
     self.ui.log_lmr.stateChanged.connect(self.robot.setLogFlag_lmr)
     self.ui.log_lms.stateChanged.connect(self.robot.setLogFlag_lms)
     self.ui.log_lmv.stateChanged.connect(self.robot.setLogFlag_lmv)
     self.ui.log_lvr.stateChanged.connect(self.robot.setLogFlag_lvr)
     self.ui.log_lpo.stateChanged.connect(self.robot.setLogFlag_lpo)
     self.ui.log_lex.stateChanged.connect(self.robot.setLogFlag_lex)
     self.ui.log_turn_rate.stateChanged.connect(self.robot.setLogFlag_ltr)
     self.ui.log_ctrl_vel.stateChanged.connect(self.robot.setLogFlagControl)
     self.ui.log_ctrl_turn.stateChanged.connect(
         self.robot.setLogFlagControl)
     self.ui.log_ctrl_pos.stateChanged.connect(self.robot.setLogFlagControl)
     self.ui.log_ctrl_edge.stateChanged.connect(
         self.robot.setLogFlagControl)
     self.ui.log_ctrl_wall.stateChanged.connect(
         self.robot.setLogFlagControl)
     self.ui.log_ctrl_fwd_dist.stateChanged.connect(
         self.robot.setLogFlagControl)
     self.ui.log_ctrl_bal.stateChanged.connect(self.robot.setLogFlagControl)
     self.ui.log_ctrl_bal_vel.stateChanged.connect(
         self.robot.setLogFlagControl)
     self.ui.log_get.clicked.connect(self.robot.logGet)
     self.ui.log_interval.valueChanged.connect(self.robot.setLogInterval)
     #self.ui.log_allow.clicked.connect(self.robot.setLogInterval)
     self.ui.log_get_filename.clicked.connect(self.robot.setLogFileName)
     self.ui.log_save.clicked.connect(self.robot.logSave)
     self.ui.log_clear.clicked.connect(self.robot.log.logClear)
     # mission
     self.ui.mission_load_from.clicked.connect(
         self.robot.mission.loadMissionFrom)
     self.ui.mission_save_as.clicked.connect(
         self.robot.mission.saveMissionAs)
     self.ui.mission_file_save.clicked.connect(
         self.robot.mission.saveMissionToRegbotMis)
     self.ui.mission_file_load.clicked.connect(
         self.robot.mission.loadMissionFromRegbotMis)
     self.ui.mission_robot_save.clicked.connect(
         self.robot.mission.sendToRobot)
     self.ui.mission_syntax_check.clicked.connect(
         self.robot.mission.checkMission)
     self.ui.mission_robot_load.clicked.connect(
         self.robot.mission.getFromRobot)
     self.ui.mission_help.clicked.connect(self.robot.mission.helpbox)
     self.ui.button_mission_clear_rx.clicked.connect(
         self.robot.mission.clearRxField)
     # robot ID etc
     self.ui.robot_wheel_radius_right.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_edit.clicked.connect(self.robot.info.dataChangedManually)
     self.ui.robot_cancel.clicked.connect(self.robot.info.cancelEdit)
     self.ui.robot_wheel_radius_left.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_pulse_per_rev.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_gear.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_base.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_id.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_balance_offset.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.save_id_on_robot.clicked.connect(self.robot.robotIdApply)
     self.ui.robot_on_battery.clicked.connect(
         self.robot.info.dataChangedManually)
     self.ui.robot_battery_idle_volt.valueChanged.connect(
         self.robot.info.dataChangedManually)
     self.ui.pushButton_ctrl_vel.clicked.connect(
         self.robot.ctrlVelocity.editControlValues)
     self.ui.pushButton_ctrlTurn.clicked.connect(
         self.robot.ctrlTurn.editControlValues)
     self.ui.pushButton_ctrlWallVel.clicked.connect(
         self.robot.ctrlWallVel.editControlValues)
     self.ui.pushButton_ctrlWallTurn.clicked.connect(
         self.robot.ctrlWallTurn.editControlValues)
     self.ui.pushButton_ctrlPos.clicked.connect(
         self.robot.ctrlPos.editControlValues)
     self.ui.pushButton_ctrlEdge.clicked.connect(
         self.robot.ctrlEdge.editControlValues)
     self.ui.pushButton_ctrlBal.clicked.connect(
         self.robot.ctrlBalance.editControlValues)
     self.ui.pushButton_ctrlBalVel.clicked.connect(
         self.robot.ctrlBalVel.editControlValues)
     # wifi
     self.ui.wifi_apply.clicked.connect(self.robot.info.wifiSendData)
     self.ui.wifi_cancel.clicked.connect(self.robot.info.wifiCancel)
     self.ui.wifi_edit.clicked.connect(self.robot.info.wifiEdit)
     self.ui.wifi_save_MAC_list.clicked.connect(
         self.robot.info.wifiSaveMacList)
     self.ui.wifi_edit.setEnabled(True)
     self.ui.wifi_cancel.setEnabled(False)
     self.ui.wifi_apply.setEnabled(False)
     # servo
     self.ui.servo_edit.clicked.connect(self.robot.servo.edit)
     self.ui.servo_cancel.clicked.connect(self.robot.servo.cancelEdit)
     self.ui.servo_apply.clicked.connect(self.robot.servo.apply)
     self.ui.horizontalSlider_servo1.valueChanged.connect(
         self.robot.servo.servo1bar)
     self.ui.horizontalSlider_servo2.valueChanged.connect(
         self.robot.servo.servo2bar)
     self.ui.horizontalSlider_servo3.valueChanged.connect(
         self.robot.servo.servo3bar)
     self.ui.horizontalSlider_servo4.valueChanged.connect(
         self.robot.servo.servo4bar)
     self.ui.horizontalSlider_servo5.valueChanged.connect(
         self.robot.servo.servo5bar)
     self.ui.servo_value_1.valueChanged.connect(self.robot.servo.servo1num)
     self.ui.servo_value_2.valueChanged.connect(self.robot.servo.servo2num)
     self.ui.servo_value_3.valueChanged.connect(self.robot.servo.servo3num)
     self.ui.servo_value_4.valueChanged.connect(self.robot.servo.servo4num)
     self.ui.servo_value_5.valueChanged.connect(self.robot.servo.servo5num)
     self.ui.checkBox_servo1.clicked.connect(self.robot.servo.servo1num)
     self.ui.checkBox_servo2.clicked.connect(self.robot.servo.servo2num)
     self.ui.checkBox_servo3.clicked.connect(self.robot.servo.servo3num)
     self.ui.checkBox_servo4.clicked.connect(self.robot.servo.servo4num)
     self.ui.checkBox_servo5.clicked.connect(self.robot.servo.servo5num)
     print("Running ...")
    def export(self, fileName=None, toBytes=False, copy=False):

        if fileName is None and not toBytes and not copy:

            if USE_PYSIDE:
                filter = [
                    "*." + str(f)
                    for f in QtGui.QImageWriter.supportedImageFormats()
                ]

            else:
                filter = [
                    "*." + bytes(f).decode('utf-8')
                    for f in QtGui.QImageWriter.supportedImageFormats()
                ]
            preferred = ['*.png', '*.tif', '*.jpg']

            for p in preferred[::-1]:

                if p in filter:
                    filter.remove(p)
                    filter.insert(0, p)

            self.fileSaveDialog(filter=filter)
            return

        targetRect = QtCore.QRect(0, 0, self.params['width'],
                                  self.params['height'])
        sourceRect = self.getSourceRect()

        w, h = self.params['width'], self.params['height']

        if w == 0 or h == 0:
            raise Exception(
                "Cannot export image with size=0 (requested export size is %dx%d)"
                % (w, h))

        #BEFORE
        #bg = np.empty((self.params['width'], self.params['height'], 4), dtype=np.ubyte)

        #AFTER
        bgSize = ((int(self.params['width']), int(self.params['height']), 4))
        bg = np.empty(bgSize, dtype=np.ubyte)

        #... I have no idea why that fixes it, I just guessed around and googled for 3 hours until it worked.
        #https://groups.google.com/forum/?nomobile=true#!topic/pyqtgraph/4jiAPUpLpF4
        #Above link led me on the right track to fixing it but for some reason I also had to declare bgSize separately?

        color = self.params['background']
        bg[:, :, 0] = color.blue()
        bg[:, :, 1] = color.green()
        bg[:, :, 2] = color.red()
        bg[:, :, 3] = color.alpha()
        self.png = fn.makeQImage(bg, alpha=True)

        ## set resolution of image:
        origTargetRect = self.getTargetRect()
        resolutionScale = targetRect.width() / origTargetRect.width()

        painter = QtGui.QPainter(self.png)

        try:
            self.setExportMode(
                True, {
                    'antialias': self.params['antialias'],
                    'background': self.params['background'],
                    'painter': painter,
                    'resolutionScale': resolutionScale
                })
            painter.setRenderHint(QtGui.QPainter.Antialiasing,
                                  self.params['antialias'])
            self.getScene().render(painter, QtCore.QRectF(targetRect),
                                   QtCore.QRectF(sourceRect))

        finally:
            self.setExportMode(False)
        painter.end()

        if copy:
            QtGui.QApplication.clipboard().setImage(self.png)

        elif toBytes:
            return self.png

        else:
            self.png.save(fileName)