Esempio n. 1
0
    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()
Esempio n. 2
0
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()