def __createCompass(self, pos): palette = Qt.QPalette() for colorRole in colorRoleList: palette.setColor(colorRole, Qt.QColor()) palette.setColor( Qt.QPalette.Base, self.palette().color(self.backgroundRole()).light(120)) palette.setColor(Qt.QPalette.Foreground, palette.color(Qt.QPalette.Base)) compass = Qwt.QwtCompass() compass.setLineWidth(4) if pos < 3: compass.setFrameShadow(Qwt.QwtCompass.Sunken) else: compass.setFrameShadow(Qwt.QwtCompass.Raised) if pos == 0: compass.setMode(Qwt.QwtCompass.RotateScale) rose = Qwt.QwtSimpleCompassRose(16, 2) rose.setWidth(0.15) compass.setRose(rose) compass.setToolTip("Bussola") elif pos == 1: compass.setLabelMap({ 0.0: "N", 45.0: "NE", 90.0: "E", 180.0: "S", 270.0: "W" }) rose = Qwt.QwtSimpleCompassRose(4, 1) compass.setRose(rose) compass.setNeedle( Qwt.QwtCompassWindArrow(Qwt.QwtCompassWindArrow.Style2)) compass.setValue(60.0) compass.setToolTip("Bussola_1") elif pos == 2: palette.setColor(Qt.QPalette.Base, Qt.Qt.darkBlue) palette.setColor(Qt.QPalette.Foreground, Qt.QColor(Qt.Qt.darkBlue).dark(120)) palette.setColor(Qt.QPalette.Text, Qt.Qt.white) compass.setScaleTicks(1, 1, 3) compass.setScale(36, 5, 0) compass.setNeedle( Qwt.QwtCompassMagnetNeedle( Qwt.QwtCompassMagnetNeedle.ThinStyle)) compass.setValue(220.0) compass.setToolTip("Bussola2") elif pos == 3: palette.setColor(Qt.QPalette.Base, self.palette().color(self.backgroundRole())) palette.setColor(Qt.QPalette.Foreground, Qt.Qt.blue) compass.setLineWidth(0) compass.setScaleOptions(Qwt.QwtDial.ScaleBackbone | Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel) compass.setScaleTicks(0, 0, 3) compass.setLabelMap({ 0.0: '0', 60.0: '60-', 120.0: '120', 180.0: '180', 240.0: '240', 320.0: '320' }) compass.setScale(36, 5, 0) compass.setNeedle( Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Ray, False, Qt.Qt.white)) compass.setOrigin(220.0) compass.setValue(20.0) compass.setToolTip("Bussola_2") elif pos == 4: compass.setScaleTicks(0, 0, 3) #compass.setScaleTicks() compass.setLabelMap({0.0: "N", 90.0: "E", 180.0: "S", 270.0: "W"}) compass.setNeedle( Qwt.QwtCompassMagnetNeedle( Qwt.QwtCompassMagnetNeedle.TriangleStyle, Qt.Qt.white, Qt.Qt.red)) compass.setValue(75.0) compass.setToolTip("Bussola_3") elif pos == 5: palette.setColor(Qt.QPalette.Foreground, Qt.Qt.black) compass.setNeedle( Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Ray, False, Qt.Qt.yellow)) compass.setValue(315.0) compass.setToolTip("Bussola_4") newPalette = compass.palette() for colorRole in colorRoleList: if palette.color(colorRole).isValid(): for colorGroup in colorGroupList: newPalette.setColor(colorGroup, colorRole, palette.color(colorRole)) for colorGroup in colorGroupList: light = newPalette.color(colorGroup, Qt.QPalette.Base).light(170) dark = newPalette.color(colorGroup, Qt.QPalette.Base).dark(170) if compass.frameShadow() == Qwt.QwtDial.Raised: mid = newPalette.color(colorGroup, Qt.QPalette.Base).dark(110) else: mid = newPalette.color(colorGroup, Qt.QPalette.Base).light(110) newPalette.setColor(colorGroup, Qt.QPalette.Dark, dark) newPalette.setColor(colorGroup, Qt.QPalette.Mid, mid) newPalette.setColor(colorGroup, Qt.QPalette.Light, light) compass.setPalette(newPalette) return compass
def __createCompass(self, pos): palette = Qt.QPalette() for colorRole in colorRoleList: palette.setColor(colorRole, Qt.QColor()) palette.setColor( Qt.QPalette.Base, self.palette().color(self.backgroundRole()).light(120)) palette.setColor( Qt.QPalette.Foreground, palette.color(Qt.QPalette.Base)) compass = Qwt.QwtCompass(self) compass.setLineWidth(4) if pos < 3: compass.setFrameShadow(Qwt.QwtCompass.Sunken) else: compass.setFrameShadow(Qwt.QwtCompass.Raised) if pos == 0: compass.setLabelMap({0.0: "N", 90.0: "E", 180.0: "S", 270.0: "W"}) rose = Qwt.QwtSimpleCompassRose(4, 1) compass.setRose(rose) compass.setNeedle( Qwt.QwtCompassWindArrow(Qwt.QwtCompassWindArrow.Style2)) compass.setValue(60.0) elif pos == 1: compass.setLabelMap({0.0: "", 90.0: "", 180.0: "", 270.0: ""}) compass.setScaleOptions(Qwt.QwtDial.ScaleBackbone | Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel) compass.setScaleTicks(0, 0, 3) compass.setNeedle(Qwt.QwtCompassMagnetNeedle( Qwt.QwtCompassMagnetNeedle.TriangleStyle, Qt.Qt.white, Qt.Qt.red)) compass.setValue(220.0) newPalette = compass.palette() for colorRole in colorRoleList: if palette.color(colorRole).isValid(): for colorGroup in colorGroupList: newPalette.setColor( colorGroup, colorRole, palette.color(colorRole)) for colorGroup in colorGroupList: light = newPalette.color( colorGroup, Qt.QPalette.Base).light(170) dark = newPalette.color( colorGroup, Qt.QPalette.Base).dark(170) if compass.frameShadow() == Qwt.QwtDial.Raised: mid = newPalette.color( colorGroup, Qt.QPalette.Base).dark(110) else: mid = newPalette.color( colorGroup, Qt.QPalette.Base).light(110) newPalette.setColor(colorGroup, Qt.QPalette.Dark, dark) newPalette.setColor(colorGroup, Qt.QPalette.Mid, mid) newPalette.setColor(colorGroup, Qt.QPalette.Light, light) compass.setPalette(newPalette) compass.setReadOnly(True) return compass