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()
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)
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
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)
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
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)
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)
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))
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()
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"""
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()
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)
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())
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)
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
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()
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()
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()
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)
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)
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)
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()
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)