def __init__(self): QtGui.QWidget.__init__(self) self.app_defs = defs.AppDefs() fileName = os.path.join(self.app_defs.ArtworkPath, "flight_controller_status.svg") self.svgDocument = SvgDocument(fileName) self.linkElement = self.svgDocument.elementById("linkStatus").toElement() #self.linkElement = self.svgDocument.elementById("throttleValue").toElement() # Initialize all UI elements self._initUI()
class UavStatusGadget(QtGui.QWidget): """ SVG widget for displaying the basic UAV status. """ def __init__(self): QtGui.QWidget.__init__(self) self.app_defs = defs.AppDefs() fileName = os.path.join(self.app_defs.ArtworkPath, "flight_controller_status.svg") self.svgDocument = SvgDocument(fileName) self.linkElement = self.svgDocument.elementById("linkStatus").toElement() #self.linkElement = self.svgDocument.elementById("throttleValue").toElement() # Initialize all UI elements self._initUI() def _initUI(self): self.setMinimumWidth(100) self.setMinimumHeight(100) def paintEvent(self, e): qp = QtGui.QPainter() qp.begin(self) self._drawWidget(qp) qp.end() def _drawWidget(self, qp): svgRenderer = QtSvg.QSvgRenderer() svgRenderer.load(self.svgDocument.document.toByteArray()) svgRenderer.render(qp) def setThrottleValue(self, value): pass def setLinkStatus(self, enabled=False): color = "#FF0000" if enabled: color = "#00ff00" else: color = "#FF0000" styleText = str(self.linkElement.attribute("style")) # Find and replace the 'fill' text startIndex = styleText.find("fill:") newStyleText = styleText.replace(styleText[startIndex:startIndex+12], "fill:"+color) self.linkElement.setAttribute(QtCore.QString("style"), QtCore.QString(newStyleText)) # Repaint the widget self.repaint()