<div dir="ltr">In that case, you could try the following to get the temp geometry being drawn on the map. <div><b>Note that this is kind of hackish, may not work for every tool, and might break at any QGIS update</b>.</div><div><br></div><div><div style="color:rgb(0,0,0);font-family:Hasklig,Consolas,"Courier New",monospace,Consolas,"Courier New",monospace;font-size:15px;line-height:20px;white-space:pre"><div><span style="color:rgb(0,0,255)">def</span> <span style="color:rgb(121,94,38)">getTempGeom</span>():</div><br><div>    <span style="color:rgb(0,128,0)"># Iter over map canvas items, starting from the end (most recent)</span></div><div>    <span style="color:rgb(175,0,219)">for</span> <span style="color:rgb(0,16,128)">item</span> <span style="color:rgb(175,0,219)">in</span> iface.mapCanvas().items()[::-<span style="color:rgb(9,134,88)">1</span>]:</div><div>        <span style="color:rgb(0,128,0)"># If it is a valid QgsGeometryRubberBand, return its geometry</span></div><div>        <span style="color:rgb(175,0,219)">if</span> <span style="color:rgb(121,94,38)">isinstance</span>(<span style="color:rgb(0,16,128)">item</span>, QgsGeometryRubberBand):</div><div>            <span style="color:rgb(0,16,128)">geom</span> = <span style="color:rgb(0,16,128)">item</span>.geometry()</div><div>            <span style="color:rgb(175,0,219)">if</span> <span style="color:rgb(0,16,128)">geom</span>.area() > <span style="color:rgb(9,134,88)">0</span>:</div><div>                <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(0,16,128)">geom</span></div><div>                </div><div>        <span style="color:rgb(0,128,0)"># If it is a valid QgsRubberBand, return its geometry</span></div><div>        <span style="color:rgb(175,0,219)">if</span> <span style="color:rgb(121,94,38)">isinstance</span>(<span style="color:rgb(0,16,128)">item</span>, QgsRubberBand):</div><div>            <span style="color:rgb(0,16,128)">geom</span> = <span style="color:rgb(0,16,128)">item</span>.asGeometry()</div><div>            <span style="color:rgb(175,0,219)">if</span> <span style="color:rgb(0,16,128)">geom</span>.area() > <span style="color:rgb(9,134,88)">0</span>:</div><div>                <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(0,16,128)">geom</span></div></div></div><div><br></div><div>In your eventFilter, you could just use getTempGeom, perform the area computation, and display a tooltip with the current area.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 1 mai 2023 à 18:00, Catania, Luke A ERDC-RDE-GRL-VA CIV <<a href="mailto:Luke.A.Catania@erdc.dren.mil">Luke.A.Catania@erdc.dren.mil</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg3951945493934600463">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="m_3951945493934600463WordSection1">
<p class="MsoNormal">Thanks for taking the time to code that.  I originally coded with the featureAdded method.  When I first found it I was pretty happy with the solution, but then since the user does not get informed until after they draw the shape and it
 is already added to the layer and so the feature then needs to be deleted so they can try again.  This can go a few iterations. 
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The previous version of the software I am working on which did not use QGIS but custom developed using R and Leaflet had this dynamic cursor that indicated the size and users miss that, so then I came across the eventFilter and applied
 that to the map canvas  and while still using the shapes from the edit menu basically used the mouse location to handle dynamically updating the cursor the a QLabel calculating the area bases on the shape being drawn.  It added more code, but out trainers
 are excited about this new feature..<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><img width="369" height="249" style="width: 3.8416in; height: 2.5916in;" id="m_3951945493934600463Picture_x0020_2" src="cid:187d8f33ebf5b16b22"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><img width="366" height="273" style="width: 3.8166in; height: 2.8416in;" id="m_3951945493934600463Picture_x0020_3" src="cid:187d8f33ebf692e333"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class="MsoNormal"><b>From:</b> Yoann Quenach de Quivillic <<a href="mailto:yoann.quenach@gmail.com" target="_blank">yoann.quenach@gmail.com</a>>
<br>
<b>Sent:</b> Sunday, April 30, 2023 5:48 PM<br>
<b>To:</b> Catania, Luke A ERDC-RDE-GRL-VA CIV <<a href="mailto:Luke.A.Catania@erdc.dren.mil" target="_blank">Luke.A.Catania@erdc.dren.mil</a>><br>
<b>Cc:</b> <a href="mailto:qgis-developer@lists.osgeo.org" target="_blank">qgis-developer@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [QGIS-Developer] Digitizing with Edit Menu<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Have you considered listening to the featureAdded signal instead? <u></u><u></u></p>
<div>
<p class="MsoNormal">The digitizing shape (aka rubberband) you see while digitizing is not really accessible. In fact, it isn't guaranteed to be the geometry of the feature being created. It could even not exist at all ; this is all dependent on the current
 QgsMapTool used.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Rather than monitoring clicks, or accessing the rubberband, you could listen to the featureAdded signal. This signal is emitted when a new feature is added to the layer. You can then perform your check (e;g area validation), and delete
 the feature if the check fails. It won't even appear on screen.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Here is a possible implementation. Note that I split the AreaValidator into three classes for genericity, but you could merge these three classes in a single one.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">LayerConnector : this is used to automatically connect all map layers to a function<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">FeatureValidator: Specialization, connects all QgsVectorLayer featureAdded signal to a function that takes the layer and the feature being added as parameters<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">AreaValidator: Contains the actual area computation, and possible deletion of the feature <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:blue">class</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">LayerConnector</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">QObject</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"""Generic class to connect to all QgsMapLayer"""</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">__init__</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">super</span><span style="font-size:11.5pt;font-family:Consolas;color:black">().</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">__init__</span><span style="font-size:11.5pt;font-family:Consolas;color:black">()<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">        QgsProject.instance().layerWasAdded.connect(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layers</span><span style="font-size:11.5pt;font-family:Consolas;color:black">()<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">__del__</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">        QgsProject.instance().layerWasAdded.disconnect(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">disconnect_layers</span><span style="font-size:11.5pt;font-family:Consolas;color:black">()<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layers</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">print</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"Connecting"</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">for</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">in</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> QgsProject.instance().mapLayers().values():<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">disconnect_layers</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">print</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"DisConnecting"</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">for</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">in</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> QgsProject.instance().mapLayers().values():<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">disconnect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">pass</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">disconnect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">pass</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12pt;line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:blue">class</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">FeatureValidator</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">LayerConnector</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"""Connect all QgsVectorLayer to a process_feature method when a feature is added"""</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">connect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">if</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">not</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">isinstance</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
 QgsVectorLayer):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">return</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.featureAdded.connect(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">on_feature_added</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">disconnect_layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">if</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">not</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">isinstance</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
 QgsVectorLayer):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">return</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.featureAdded.disconnect(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">on_feature_added</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">on_feature_added</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">id</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> =
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.sender()<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feat</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> =
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.getFeature(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">id</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">process_feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feat</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">process_feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">print</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">f</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"Feature
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">{</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.id()</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">}</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">
 added to layer </span><span style="font-size:11.5pt;font-family:Consolas;color:blue">{</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.name()</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">}</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12pt;line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:blue">class</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">AreaValidator</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">FeatureValidator</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">__init__</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">max_area</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">super</span><span style="font-size:11.5pt;font-family:Consolas;color:black">().</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">__init__</span><span style="font-size:11.5pt;font-family:Consolas;color:black">()<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">max_area</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
 = </span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">max_area</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">def</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">process_feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">):<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">geom</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> =
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.geometry()<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">if</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">not</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">geom</span><span style="font-size:11.5pt;font-family:Consolas;color:black">:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">return</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:green"># Here you should handle CRS transformation</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:green"># before computing the feature area</span><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">area</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> =
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">geom</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.area()<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">       
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(175,0,219)">if</span><span style="font-size:11.5pt;font-family:Consolas;color:black">
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">area</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> >
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">self</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">max_area</span><span style="font-size:11.5pt;font-family:Consolas;color:black">:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">            iface.messageBar().pushWarning(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"Cannot add feature"</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">f</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"Area too big :
</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">{</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(121,94,38)">round</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">area</span><span style="font-size:11.5pt;font-family:Consolas;color:black">,
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(9,134,88)">2</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)</span><span style="font-size:11.5pt;font-family:Consolas;color:blue">}</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(163,21,21)">"</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black">           
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">layer</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.deleteFeature(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">feature</span><span style="font-size:11.5pt;font-family:Consolas;color:black">.id())<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12pt;line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="line-height:15pt"><span style="font-size:11.5pt;font-family:Consolas;color:rgb(0,16,128)">validator</span><span style="font-size:11.5pt;font-family:Consolas;color:black"> =
</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(38,127,153)">AreaValidator</span><span style="font-size:11.5pt;font-family:Consolas;color:black">(</span><span style="font-size:11.5pt;font-family:Consolas;color:rgb(9,134,88)">500</span><span style="font-size:11.5pt;font-family:Consolas;color:black">)<u></u><u></u></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">Le dim. 30 avr. 2023 à 18:42, Catania, Luke A ERDC-RDE-GRL-VA CIV via QGIS-Developer <<a href="mailto:qgis-developer@lists.osgeo.org" target="_blank">qgis-developer@lists.osgeo.org</a>> a écrit :<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class="MsoNormal">When you digitize a shape using the Edit menu in QGIS is the shape accessible?  I am looking to get he area of the shape as it is drawn.  I have added an event filter to my code
 to capture the coordinates and calculate it by creating a QgsGeometry, but my code is getting complicated as there are many shapes that a user can draw from this menu so if I can get access to this shape if it is temporary in memory, then I can just calculate
 the area on the shape and not have to capture all the positions of the mouse when clicked and moved.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><img border="0" width="296" height="160" style="width: 3.0833in; height: 1.6666in;" id="m_3951945493934600463m_7101726221067993375Picture_x0020_1" src="cid:187d8f33ebe4cff311"><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a>
Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked</a><br>
Unsubscribe: <a>
Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked</a><u></u><u></u></p>
</div>
</blockquote>
</div>
</div>
</div>

</div></blockquote></div>