def __init__(self, parent_name='', curve_type=None, x1=None, x2=None, y1=None, y2=None, s=''): self.id = AnnotationObject.newid() # information to be saved in annotation file self.__parent_name = parent_name self.__curve_type = curve_type self.x_from = x1 self.x_to = x2 self.yval1 = y1 self.yval2 = y2 self.valid = True # if a curve is valid and should be plotted self.text = Qwt.QwtText(self.text_wrap(str(s))) self.__too_small_limit = 0 self.font_app = QtGui.QFont() # QPen settings self.pen_def = Qt.QPen() self.pen_symbol = Qt.QPen() self.symbol = Qwt.QwtSymbol() self.__default_pen = Qt.QPen() self.color_highlight = Qt.Qt.darkMagenta
def label(self, axisValue): # print str(axisValue) if not self._plot._bPlotDatesXAxis: return Qwt.QwtText(str(int(axisValue))) else: remaindermsecs = axisValue/self._fs - int(axisValue) / self._fs qtime = self._timeFirst.addSecs(int(axisValue) / self._fs) qtime = qtime.addMSecs(1000*remaindermsecs+1) # print "value {0}, qtime {1}".format(int(axisValue),qTime) return Qwt.QwtText(qtime.toString("hh:mm"))
def get_symbol_highlight(self): symbol = Qwt.QwtSymbol(self.symbol) pen = Qt.QPen(self.pen_symbol) pen.setColor(self.color_highlight) symbol.setPen(pen) symbol.setBrush(Qt.QBrush(self.color_highlight)) # new 2016-07-14 return symbol
def ylabel(self, text=""): """ set the y axis label. The font is based on application font """ font = self._font_app font.setBold(True) qtext = Qwt.QwtText(text) qtext.setFont(font) self.setAxisTitle(Qwt.QwtPlot.yLeft, qtext)
def __init__(self, parent=None): super(IVSweepDaqWidget, self).__init__(parent) self.setupUi(self) self.aoDeviceCombo.currentIndexChanged.connect( self.updateDaqChannelsAo) self.aiDeviceCombo.currentIndexChanged.connect( self.updateDaqChannelsAi) self.populateDaqCombos() self.restoreSettings() self.msmThread = None self.startPb.clicked.connect(self.startPbClicked) self.hkSub = HousekeepingSubscriber(self) self.hkSub.adrTemperatureReceived.connect(self.temperatureSb.setValue) self.hkSub.start() self.rawPlot.setAxisTitle(QwtPlot.yLeft, 'Vmeas') self.rawPlot.setAxisTitle(QwtPlot.xBottom, 'Vdrive') self.rawCurve = QwtPlotCurve('') self.rawCurve.attach(self.rawPlot) self.criticalCurve1 = QwtPlotCurve('+') self.criticalCurve1.setSymbol( Qwt.QwtSymbol(Qwt.QwtSymbol.Cross, Qt.QBrush(), Qt.QPen(Qt.Qt.red), Qt.QSize(5, 5))) self.criticalCurve1.attach(self.criticalPlot) self.criticalCurve2 = QwtPlotCurve('-') self.criticalCurve2.setSymbol( Qwt.QwtSymbol(Qwt.QwtSymbol.Cross, Qt.QBrush(), Qt.QPen(Qt.Qt.blue), Qt.QSize(5, 5))) self.criticalCurve2.attach(self.criticalPlot) self.criticalPlot.setAxisTitle(QwtPlot.yLeft, 'Vcrit') self.clearData() self.clearCriticalData() self.clearPb.clicked.connect(self.clearData) self.coilSweepCb.toggled.connect(self.toggleCoilSweep) self.clearCriticalPb.clicked.connect(self.clearCriticalData) self.samplesPerPointSb.valueChanged.connect( lambda value: self.discardSamplesSb.setMaximum(value - 1)) self.coilEnableCb.toggled.connect(self.toggleCoil) self.coilVoltageSb.valueChanged.connect(self.updateCoilVoltage) self.toggleCoil(self.coilEnableCb.isChecked()) self.coilDriverCombo.currentIndexChanged.connect( self.coilDriverChanged) self.Vcoil = np.nan
def __init__( self, parent=None ): # Initialize program and extract dial GUI QtGui.QWidget.__init__( self, parent ) self.ui = Ui_MainWindow() self.ui.setupUi( self ) self.thread = Worker( self ) # Close rfObject socket on exit self.ui.pushButtonQuit.clicked.connect( self.cleanUp ) # Setup gauge-needle dimensions self.ui.Dial.setOrigin( 90.0 ) self.ui.Dial.setScaleArc( 0.0, 340.0 ) self.ui.Dial.update() self.ui.Dial.setNeedle( Qwt.QwtDialSimpleNeedle( Qwt.QwtDialSimpleNeedle.Arrow, True, Qt.QColor(Qt.Qt.red), Qt.QColor(Qt.Qt.gray).light(130) ) ) self.ui.Dial.setScaleOptions( Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel | Qwt.QwtDial.ScaleBackbone ) # Small ticks are length 5, medium are 15, large are 20 self.ui.Dial.setScaleTicks( 5, 15, 20 ) # Large ticks show every 20, put 10 small ticks between # each large tick and every 5 small ticks make a medium tick self.ui.Dial.setScale( 10.0, 10.0, 20.0 ) self.ui.Dial.setRange( 0.0, 300.0 ) self.ui.Dial.setValue( 0 ) # Unpack argumnet parser parameters as attributes self.directory = args["directory"] self.destination = args["destination"] self.address = args["stethoscope"] self.mode = args["mode"] # Boolean to control recording function self.init_rec = True # List all available BT devices self.ui.Dial.setEnabled( True ) self.ui.pushButtonPair.setEnabled( False ) self.ui.pushButtonPair.setText(QtGui.QApplication.translate("MainWindow", "Paired", None, QtGui.QApplication.UnicodeUTF8)) # set timeout function for updates self.ctimer = QtCore.QTimer() self.ctimer.start( 10 ) QtCore.QObject.connect( self.ctimer, QtCore.SIGNAL( "timeout()" ), self.UpdateDisplay ) # Create logfile self.setup_log()
def text_wrap_evaluations(self, evals): """ This is inverse function to get_text() The input is 1 line string: initial_ctg:abnormal__neurology:brain injury The output is left aligned: initial_ctg: abnormal . neurology: brain injury . :param evals: string of evaluation separated by __ :return: """ # compute value for text padding (to be align on right) n = 0 for r in evals.split(self.sep): r = r.strip('\n') r = Qwt.QwtText(r) if n < r.textSize().width(): n = r.textSize().width() eval_list = list() for r in evals.split(self.sep): if r == '': continue r = r.strip('\n') s = r.split(self.sep_type_and_value) s = '{0}{1} {2}'.format(s[0], self.sep_type_and_value, s[1]) r = Qwt.QwtText(s) while r.textSize().width() < n: s += ' ' r = Qwt.QwtText(s) # to have correct alignment s += '.' eval_list.append(s) s = '\n'.join(eval_list) return s
def label(self, axis_value): s = QtCore.QString(str(int(axis_value))) # doplnuji string podle pozadovane sirky while self._fontMetrics.width(s) <= self._max_w: s = ' '+s # s = '{:>8}'.format(axis_value) # tohle nefunguje protoze mezera ma jinou sirku nez cislo # print self._fontMetrics.width(s) return Qwt.QwtText(s)
def plot_second_stage_line(self, stage2pos_samp): """ Plot the second stage of labour :param stage2pos_samp: :return: """ meanline = Qwt.QwtPlotMarker() meanline.setLineStyle(Qwt.QwtPlotMarker.VLine) meanline.setLinePen(Qt.QPen(Qt.Qt.darkBlue, 4)) meanline.setXValue(stage2pos_samp) meanline.attach(self)
def plot_first_stage_line(self, stage1pos_samp): """ Plot the first stage of labour :param stage1pos_samp: :return: """ meanline2 = Qwt.QwtPlotMarker() meanline2.setLineStyle(Qwt.QwtPlotMarker.VLine) meanline2.setLinePen(Qt.QPen(Qt.Qt.darkCyan, 4)) meanline2.setXValue(stage1pos_samp) meanline2.attach(self)
def rysuj_wykres(self, tablica_cash_flow, tablica_wolumenow, cf_laczone): try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s self.qwtPlot.hide() self.qwtPlot.destroy() self.qwtPlot = Qwt.QwtPlot(self.tab_3) self.qwtPlot.setGeometry(QtCore.QRect(0, 0, 891, 256)) self.qwtPlot.setObjectName(_fromUtf8("qwtPlot")) self.qwtPlot.setAxisScale(Qwt.QwtPlot.xBottom, 0.0, len(tablica_cash_flow)) self.qwtPlot.setAxisScale( Qwt.QwtPlot.yLeft, min(cf_laczone), max(max(tablica_cash_flow), max(tablica_wolumenow))) grid = Qwt.QwtPlotGrid() grid.enableXMin(True) grid.enableYMin(True) grid.setMajPen(QtGui.QPen(QtGui.QColor(0, 0, 0), 1)) grid.setMinPen(QtGui.QPen(QtGui.QColor(100, 100, 100), 1)) grid.attach(self.qwtPlot) #histogram = HistogramItem() #histogram.setColor(QtGui.QColor(170,170,100)) numValues = len(tablica_cash_flow) intervals = [] values = Qwt.QwtArrayDouble(numValues) argumenty = range(len(values)) argumenty2 = [] for arg in argumenty: argumenty2.append(float(arg)) #argumenty2 = Qwt.QwtArrayDouble() i = 0 #for args in argumenty: curve = Qwt.QwtPlotCurve("Curve " + str(i)) curve.setPen(QtGui.QPen(QtGui.QBrush(QtGui.QColor(0, 255, 0)), 2)) # cash flow zielone curve.setData(argumenty2, tablica_cash_flow) curve.attach(self.qwtPlot) i = 1 curve2 = Qwt.QwtPlotCurve("Curve " + str(i)) curve2.setPen(QtGui.QPen(QtGui.QBrush(QtGui.QColor(255, 0, 0)), 2)) # wolumen czerwony curve2.setData(argumenty2, tablica_wolumenow) curve2.attach(self.qwtPlot) i = 3 curve3 = Qwt.QwtPlotCurve("Curve " + str(i)) curve3.setPen(QtGui.QPen(QtGui.QBrush(QtGui.QColor(0, 0, 255)), 2)) # suma niebieska curve3.setData(argumenty2, cf_laczone) curve3.attach(self.qwtPlot) self.qwtPlot.replot() self.qwtPlot.show()
def plot_bith_line(self, pos_samp): """ Plot line indicating birth time :param pos_samp: :return: """ meanline = Qwt.QwtPlotMarker() meanline.setLineStyle(Qwt.QwtPlotMarker.VLine) meanline.setLinePen(Qt.QPen(Qt.Qt.green, 4)) meanline.setXValue(pos_samp) meanline.attach(self)
def __init__(self, parent): Plot.__init__(self, parent) # the plot and its data self._raster_data = RasterData(self) self._plot_item = Qwt.QwtPlotSpectrogram() self._plot_item.setData(self._raster_data) self._plot_item.attach(self) # enable colormap and -bar self._cbar = self.axisWidget(Qwt.QwtPlot.yRight) self._cbar.setColorBarEnabled(True) self.enableAxis(Qwt.QwtPlot.yRight) self.set_cbar()
def __init__(self, parent=None): # Initialize program and extract dial GUI QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.thread = Worker(self) # Close rfObject socket on exit self.ui.pushButtonQuit.clicked.connect(self.cleanUp) # Setup gauge-needle dimensions self.ui.Dial.setOrigin(90.0) self.ui.Dial.setScaleArc(0.0, 340.0) self.ui.Dial.update() self.ui.Dial.setNeedle( Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow, True, Qt.QColor(Qt.Qt.red), Qt.QColor(Qt.Qt.gray).light(130))) self.ui.Dial.setScaleOptions(Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel | Qwt.QwtDial.ScaleBackbone) # Small ticks are length 5, medium are 15, large are 20 self.ui.Dial.setScaleTicks(5, 15, 20) # Large ticks show every 20, put 10 small ticks between # each large tick and every 5 small ticks make a medium tick self.ui.Dial.setScale(10.0, 10.0, 20.0) self.ui.Dial.setRange(0.0, 300.0) self.ui.Dial.setValue(0) # List all available BT devices address = deviceBTAddress[0] self.ui.pushButtonPair.setEnabled(True) self.ui.pushButtonPair.setText( QtGui.QApplication.translate("MainWindow", "Click to Connect", None, QtGui.QApplication.UnicodeUTF8)) self.ui.pushButtonPair.clicked.connect( lambda: self.connectStethoscope(address))
def __init__(self, parent_name='', curve_type=None, x1=None, x2=None, y1=None, y2=None, s=''): super(AnnotationObject, self).__init__() AnnotationObject.__init__(self, parent_name, curve_type, x1, x2, y1, y2, s) Qwt.QwtPlotCurve.__init__(self) # self.text.text() - contains points for floating baseline # in the following format: x1-y1, x2-y2, x3-y3, etc. self._fbaseline_x = [] self._fbaseline_y = [] if curve_type == EnumAnnType.floating_baseline: c = Qt.QColor(Qt.Qt.blue) c.setAlpha(100) cb = Qt.QColor(Qt.Qt.blue) cb.setAlpha(0) self.define_pen(color=c, width=3, line=Qt.Qt.SolidLine) self.define_pen_symbol(c, 3) self.define_symbol(Qwt.QwtSymbol.Rect, cb, Qt.QSize(12, 12)) self.set_too_small_limit(0) self.setStyle(Qwt.QwtPlotCurve.Lines) self.setCurveAttribute(Qwt.QwtPlotCurve.Fitted, True) self.fitter = Qwt.QwtSplineCurveFitter() self.fitter.setFitMode(Qwt.QwtSplineCurveFitter.ParametricSpline) self.fitter.setSplineSize(500) self.setCurveFitter(self.fitter) self.setRenderHint(Qwt.QwtPlotItem.RenderAntialiased) else: raise Exception('Do not use PyQwtPlotFloatingBaseline for this type of curve') self.set_default_pen() self.setPen(self.pen_def) self.setSymbol(self.symbol)
def changePlotWidget(self, library, frame_for_plot): if library == "Qwt5" and has_qwt: plotWdg = QwtPlot(frame_for_plot) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( plotWdg.sizePolicy().hasHeightForWidth()) plotWdg.setSizePolicy(sizePolicy) plotWdg.setMinimumSize(QSize(0, 0)) plotWdg.setAutoFillBackground(False) #Decoration plotWdg.setCanvasBackground(Qt.white) plotWdg.plotLayout().setAlignCanvasToScales(True) zoomer = QwtPlotZoomer(QwtPlot.xBottom, QwtPlot.yLeft, QwtPicker.DragSelection, QwtPicker.AlwaysOff, plotWdg.canvas()) zoomer.setRubberBandPen(QPen(Qt.blue)) if platform.system() != "Windows": # disable picker in Windows due to crashes picker = QwtPlotPicker(QwtPlot.xBottom, QwtPlot.yLeft, QwtPicker.NoSelection, QwtPlotPicker.CrossRubberBand, QwtPicker.AlwaysOn, plotWdg.canvas()) picker.setTrackerPen(QPen(Qt.green)) #self.dockwidget.qwtPlot.insertLegend(QwtLegend(), QwtPlot.BottomLegend); grid = Qwt.QwtPlotGrid() grid.setPen(QPen(QColor('grey'), 0, Qt.DotLine)) grid.attach(plotWdg) return plotWdg elif library == "Matplotlib" and has_mpl: from matplotlib.figure import Figure from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg fig = Figure((1.0, 1.0), linewidth=0.0, subplotpars=matplotlib.figure.SubplotParams(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0)) font = {'family': 'arial', 'weight': 'normal', 'size': 12} matplotlib.rc('font', **font) rect = fig.patch rect.set_facecolor((0.9, 0.9, 0.9)) self.subplot = fig.add_axes((0.07, 0.15, 0.92, 0.82)) self.subplot.set_xbound(0, 1000) self.subplot.set_ybound(0, 1000) self.manageMatplotlibAxe(self.subplot) canvas = FigureCanvasQTAgg(fig) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) canvas.setSizePolicy(sizePolicy) return canvas
def define_symbol(self, s=Qwt.QwtSymbol.VLine, c=Qt.Qt.black, qsize=Qt.QSize(15, 15)): self.symbol = Qwt.QwtSymbol(s, Qt.QBrush(c), self.pen_symbol, qsize)
def __init__(self, parent=None, name=''): Qwt.QwtPlot.__init__(self, parent) self._log = logging.getLogger(ConfigStatic.logger_name) self._log.info('passed') self.__name = name self._font_app = QtGui.QFont() dpi = 96 # TODO test physicalDpi (funguje v MainWindow.py) self._dpi2px = dpi*(1/2.54) self._plotSpeed = EnumPlotSpeed.oneCmMin self._plotBpm = EnumPlotBpm.twentyBpmCm self._plotBpmMajorTick = self._plotBpm #: Doc comment for instance attribute qux. self._minView = 0 self._maxView = 240 self._min_view_paper_lim = 0 self._max_view_paper_lim = 240 self._paper_format = EnumPaperFormat.EU self._minTime = 0 self._maxTime = 0 self._centerPoint = 0 self.__sampling_freq = 4 self._x = np.zeros(1) self._y = np.zeros(1) self._timeString = list() self._define_paper() # self.__canvasXMap = self.canvasMap(Qwt.QwtPlot.xBottom) # self.__canvasYMap = self.canvasMap(Qwt.QwtPlot.yLeft) self.setCanvasBackground(Qt.Qt.white) self.setAxisTitle(Qwt.QwtPlot.xBottom, "Time [min]") self.setAxisTitle(Qwt.QwtPlot.yLeft, "") # curves self.curve1 = Qwt.QwtPlotCurve('signal') # #self.curve1.setRenderHint(Qwt.QwtPlotItem.RenderAntialiased) # self.curve1.setPen(QPen(Qt.Qt.black,0, Qt.Qt.SolidLine)) # self.curve1.setYAxis(Qwt.QwtPlot.yLeft) # self.curve1.attach(self) self._baseline = Qwt.QwtPlotMarker() ''' annotations ''' self.__d_ann_all_curves = dict() self.d_ann_all_curves_navplot = dict() self.__ann_action = 0 self.caliper = Caliper(self, EnumAnnType.plot_fhr, EnumAnnType.caliper) # self.caliper.plot() # time scale - for string time scale self.timeScale = TimeScaleDraw(self) self.setAxisScaleDraw(Qwt.QwtPlot.xBottom, self.timeScale) # time scale - for Y axis self.yAxisScale = AxisYScaleDraw(self) self.setAxisScaleDraw(Qwt.QwtPlot.yLeft, self.yAxisScale) self._bPlotDatesXAxis = False self._time_tics_located = list() self._locator_min = 5 self._locator_hour = 0 # grid self.grid = Qwt.QwtPlotGrid() self.grid.enableYMin(True) self.grid.enableXMin(True) self.grid.setMajPen(QtGui.QPen(Qt.Qt.lightGray, 0, Qt.Qt.SolidLine)) self.grid.setMinPen(QtGui.QPen(Qt.Qt.lightGray, 0, Qt.Qt.DotLine)) self.grid.attach(self) self.__set_axis_app_font()
def __init__(self): try: rostopic.get_topic_class('/rosout') # is_rosmaster_running = True except rostopic.ROSTopicIOException as e: roscore = subprocess.Popen('roscore') # then start roscore yourself time.sleep(1) # wait a bit to be sure the roscore is really launched app = QApplication(sys.argv) window = QMainWindow() ui = Ui_RhagGUI() ui.setupUi(window) # functions for several buttons # applying and loading settings, closing etc. okBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.Ok) # todo: Ok needs a function okBtn.clicked.connect(lambda: saveSettings(window, jsonVR)) # okBtn.clicked.connect(ui.statusbar.showMessage('Ok has no function yet')) cancelBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.Cancel) cancelBtn.clicked.connect(lambda: saveClose(window)) # save to recent and close # app.aboutToQuit.connect(lambda :saveClose(window)) # todo: is closing the window smart? # todo: is saving last known config on cancel smart? defaultBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.RestoreDefaults) defaultBtn.clicked.connect(lambda: loadSettings(window, jsonDefault)) saveBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.Save) saveBtn.clicked.connect(lambda: saveSettings(window, jsonCurrent)) saveAsBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.SaveAll) saveAsBtn.setText("Save as") saveAsBtn.clicked.connect(lambda: openSave(window)) loadBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.Open) loadBtn.setText("Load") # because it is actually open button # loadBtn.clicked.connect(lambda: loadSettings(window, filePath + jsonFile)) loadBtn.clicked.connect(lambda: openLoad(window)) resetBtn = ui.buttonBox.button(QtGui.QDialogButtonBox.Reset) resetBtn.clicked.connect(lambda: loadSettings(window, jsonCurrent)) # recordPathBtn = ui.buttonBox.button(ui.frameRecordPathBtn) # file = str(QFileDialog.getExistingDirectory(self, "Select Directory")) ui.frameRecordPathBtn.clicked.connect(lambda: showSaveDialog(window, ui.frameRecordPath)) # 'frameRecordPath': [ui.frameRecordPathBtn,showSaveDialog,ui.frameRecordPath], # todo. open the last tab on close ui.startVRBtn.clicked.connect(lambda: startVR()) ui.stopVRBtn.clicked.connect(lambda: stopVR()) ui.camParamBtn.clicked.connect(lambda: startCameraParam()) ui.wbadBtn.clicked.connect(lambda: startWbad()) ui.rqtBtn.clicked.connect(lambda: startRqt()) ui.resetView.clicked.connect(lambda: resetView()) ui.clearPlot.clicked.connect(lambda: clearPlot()) ui.compassServo.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassServo.setOrigin(270) # to set north as north # always start rosnode inside main else imports end in loop ui.compassHeading.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassHeading.setOrigin(270) # to set north as north RosSubscriber('GUI', '/trajectory', MsgTrajectory, clbk) my_plot = pg.PlotWidget() ui.trajectoryLayout.addWidget(my_plot) s1 = pg.ScatterPlotItem(size=2, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120)) # resetView() timer = QTimer() timer.timeout.connect(tick) timer.start(100) myDict = { 'greenTexPath': [ui.greenTexPathBtn, showFileDialog, ui.greenTexPath], 'redTexPath': [ui.redTexPathBtn, showFileDialog, ui.redTexPath], 'object1': [ui.obj1PathBtn, showFileDialog, ui.object1], 'object2': [ui.obj2PathBtn, showFileDialog, ui.object2], 'treeTexPath': [ui.treeTexPathBtn, showFileDialog, ui.treeTexPath], 'skyMapBtn': [ui.skyMapBtn, showFileDialog, ui.skyMap], 'skyMapNullBtn': [ui.skyMapNullBtn, showFileDialog, ui.skyMapNull], 'modelHeightMap': [ui.modelHeightMapBtn, showFileDialog, ui.modelHeightMap], 'modelTextureMap': [ui.modelTextureMapBtn, showFileDialog, ui.modelTextureMap], 'modelTextureMapNull': [ui.modelTextureMapNullBtn, showFileDialog, ui.modelTextureMapNull], 'odour1': [ui.odourBtn1, showFileDialog, ui.odour1], 'odour2': [ui.odourBtn2, showFileDialog, ui.odour2], 'odour3': [ui.odourBtn3, showFileDialog, ui.odour3], 'odour4': [ui.odourBtn4, showFileDialog, ui.odour4], 'odour1Mask': [ui.odour1MaskBtn, showFileDialog, ui.odour1Mask], 'odour2Mask': [ui.odour2MaskBtn, showFileDialog, ui.odour2Mask], 'odour3Mask': [ui.odour3MaskBtn, showFileDialog, ui.odour3Mask], 'odour4Mask': [ui.odour4MaskBtn, showFileDialog, ui.odour4Mask], 'beepPath': [ui.beepPathBtn, showFileDialog, ui.beepPath], } callLooper(myDict) try: loadSettings(window, jsonCurrent) # load the last run config except ValueError: pass window.show() try: (app.exec_()) except KeyboardInterrupt: sys.exit()
ui.startVRBtn.clicked.connect(lambda: startVR()) ui.stopVRBtn.clicked.connect(lambda: stopVR()) ui.camParamBtn.clicked.connect(lambda: startCameraParam()) ui.wbadBtn.clicked.connect(lambda: startWbad()) ui.rqtBtn.clicked.connect(lambda: startRqt()) ui.resetView.clicked.connect(lambda :resetView()) ui.clearPlot.clicked.connect(lambda :clearPlot()) ui.clearPlot_2.clicked.connect(lambda :clearPlot()) ui.replayPathBtn.clicked.connect(lambda :showFileDialog(window, ui.replayPath, pathModel,local=False)) # ui.greenTexPathBtn, showFileDialog, ui.greenTexPath ui.compassServo.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassServo.setOrigin(270) ui.compassServo_2.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassServo_2.setOrigin(270) # to set north as north # always start rosnode inside main else imports end in loop ui.compassHeading.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassHeading.setOrigin(270)# to set north as north ui.compassSlip.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow)) ui.compassSlip.setOrigin(270)# to set north as north
def range(self): if self.limits == None: return (Qwt.QwtDoubleInterval(self._data.min(), self._data.max())) else: return (Qwt.QwtDoubleInterval(self.limits[0], self.limits[1]))