class GtoWidgetScale(QWidget):
    def __init__(self, gtomain, parent=None):
        super(GtoWidgetScale, self).__init__(parent)
        # QWidgetAction.__init__(self,parent)
        self.iface = gtomain.iface
        self.info = gtomain.info
        self.debug = gtomain.debug
        self.block = False
        try:
            self.canvas = self.iface.mapCanvas()
            # ui
            lay = QHBoxLayout(self)
            # -----
            self.lblLayer = QLabel("Maßstab:")
            lay.addWidget(self.lblLayer)
            self.wid = QgsScaleWidget(self)
            self.wid.setMinimumWidth(120)
            lay.addWidget(self.wid)
            # -----
            self.setLayout(lay)
            # signals
            self.canvas.scaleChanged.connect(self.scale_changed)
            self.wid.scaleChanged.connect(self.set_mapscale)
            # start
            self.scale_changed(self.canvas.scale())
        except Exception as e:
            self.info.err(e)

    def scale_changed(self, scale):
        try:
            # if self.debug: self.info.log("scale_changed", scale)
            # self.blockSignals(True)
            if not self.block:
                self.block = True
                self.wid.setScale(round(scale, 0))
                self.block = False
            # self.blockSignals(False)
        except Exception as e:
            self.info.err(e)

    def set_mapscale(self, scale):
        try:
            # if self.debug: self.info.log("set_mapscale", scale)
            # self.blockSignals(True)
            if not self.block:
                self.block = True
                self.canvas.zoomScale(scale)
                self.block = False
            # self.blockSignals(False)
        except Exception as e:
            self.info.err(e)
Beispiel #2
0
    def testNull(self):
        w = QgsScaleWidget()

        w.setScale(50)
        self.assertFalse(w.allowNull())
        w.setNull() # no effect
        self.assertEqual(w.scale(), 50.0)
        self.assertFalse(w.isNull())

        spy = QSignalSpy(w.scaleChanged)
        w.setAllowNull(True)
        self.assertTrue(w.allowNull())

        w.setScaleString('')
        self.assertEqual(len(spy), 1)
        self.assertTrue(math.isnan(w.scale()))
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())
        w.setScaleString("    ")
        self.assertTrue(math.isnan(w.scale()))
        self.assertTrue(w.isNull())

        w.setScaleString('0.02')
        self.assertEqual(w.scale(), 50.0)
        self.assertEqual(len(spy), 2)
        self.assertEqual(spy[-1][0], 50.0)
        self.assertFalse(w.isNull())

        w.setScaleString('')
        self.assertTrue(math.isnan(w.scale()))
        self.assertEqual(len(spy), 3)
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())

        w.setScaleString('0.02')
        self.assertEqual(w.scale(), 50.0)
        self.assertEqual(len(spy), 4)
        self.assertEqual(spy[-1][0], 50.0)
        self.assertFalse(w.isNull())
        w.setNull()
        self.assertTrue(math.isnan(w.scale()))
        self.assertEqual(len(spy), 5)
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())

        w.setAllowNull(False)
        self.assertFalse(w.allowNull())
Beispiel #3
0
    def testNull(self):
        w = QgsScaleWidget()

        w.setScale(50)
        self.assertFalse(w.allowNull())
        w.setNull()  # no effect
        self.assertEqual(w.scale(), 50.0)
        self.assertFalse(w.isNull())

        spy = QSignalSpy(w.scaleChanged)
        w.setAllowNull(True)
        self.assertTrue(w.allowNull())

        w.setScaleString('')
        self.assertEqual(len(spy), 1)
        self.assertTrue(math.isnan(w.scale()))
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())
        w.setScaleString("    ")
        self.assertTrue(math.isnan(w.scale()))
        self.assertTrue(w.isNull())

        w.setScaleString('0.02')
        self.assertEqual(w.scale(), 50.0)
        self.assertEqual(len(spy), 2)
        self.assertEqual(spy[-1][0], 50.0)
        self.assertFalse(w.isNull())

        w.setScaleString('')
        self.assertTrue(math.isnan(w.scale()))
        self.assertEqual(len(spy), 3)
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())

        w.setScaleString('0.02')
        self.assertEqual(w.scale(), 50.0)
        self.assertEqual(len(spy), 4)
        self.assertEqual(spy[-1][0], 50.0)
        self.assertFalse(w.isNull())
        w.setNull()
        self.assertTrue(math.isnan(w.scale()))
        self.assertEqual(len(spy), 5)
        self.assertTrue(math.isnan(spy[-1][0]))
        self.assertTrue(w.isNull())

        w.setAllowNull(False)
        self.assertFalse(w.allowNull())