<div dir="ltr"><div class="gmail-post-text">
<p style="white-space:pre-wrap">Hello, I'm writing a QGIS plugin but I'm facing some basic problems. The
plugin is a dockwidget. I've built it with plugin Builder and then
compiled the resources file.</p>
<p style="white-space:pre-wrap">When I try to access the comboBox to populate it with values, an error happens:</p>
<blockquote>
<p style="white-space:pre-wrap"><i>self.dockwidget.comboBox.clear() AttributeError: 'NoneType' object
has no attribute 'comboBox'</i></p>
</blockquote>
<p style="white-space:pre-wrap">I checked in the Qt _Designer the object name and it's comboBox. When
I do the same with a dialog plugin, instead a dockwidget, everything
seems to be right, and the comboBox is populated. This is the code for
the run method.</p>
<pre class="gmail-lang-py gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-kwd">def</span><span class="gmail-pln"> run</span><span class="gmail-pun">(</span><span class="gmail-pln">self</span><span class="gmail-pun">):</span><span class="gmail-pln">
</span><span class="gmail-str">"""Run method that loads and starts the plugin"""</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget</span><span class="gmail-pun">.</span><span class="gmail-pln">comboBox</span><span class="gmail-pun">.</span><span class="gmail-pln">clear</span><span class="gmail-pun">()</span><span class="gmail-pln">
</span><span class="gmail-kwd">for</span><span class="gmail-pln"> i </span><span class="gmail-kwd">in</span><span class="gmail-pln"> range</span><span class="gmail-pun">(</span><span class="gmail-lit">9</span><span class="gmail-pun">):</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget</span><span class="gmail-pun">.</span><span class="gmail-pln">comboBox</span><span class="gmail-pun">.</span><span class="gmail-pln">addItem</span><span class="gmail-pun">(</span><span class="gmail-pln">str</span><span class="gmail-pun">(</span><span class="gmail-pln">i</span><span class="gmail-pun">))</span><span class="gmail-pln">
</span><span class="gmail-kwd">if</span><span class="gmail-pln"> </span><span class="gmail-kwd">not</span><span class="gmail-pln"> self</span><span class="gmail-pun">.</span><span class="gmail-pln">pluginIsActive</span><span class="gmail-pun">:</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">pluginIsActive </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-kwd">True</span><span class="gmail-pln">
</span><span class="gmail-com">#print "** STARTING PruebaExp"</span><span class="gmail-pln">
</span><span class="gmail-com"># dockwidget may not exist if:</span><span class="gmail-pln">
</span><span class="gmail-com"># first run of plugin</span><span class="gmail-pln">
</span><span class="gmail-com"># removed on close (see self.onClosePlugin method)</span><span class="gmail-pln">
</span><span class="gmail-kwd">if</span><span class="gmail-pln"> self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget </span><span class="gmail-pun">==</span><span class="gmail-pln"> </span><span class="gmail-kwd">None</span><span class="gmail-pun">:</span><span class="gmail-pln">
</span><span class="gmail-com"># Create the dockwidget (after translation) and keep reference</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-typ">PruebaExpDockWidget</span><span class="gmail-pun">()</span><span class="gmail-pln">
</span><span class="gmail-com"># connect to provide cleanup on closing of dockwidget</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget</span><span class="gmail-pun">.</span><span class="gmail-pln">closingPlugin</span><span class="gmail-pun">.</span><span class="gmail-pln">connect</span><span class="gmail-pun">(</span><span class="gmail-pln">self</span><span class="gmail-pun">.</span><span class="gmail-pln">onClosePlugin</span><span class="gmail-pun">)</span><span class="gmail-pln">
</span><span class="gmail-com"># show the dockwidget</span><span class="gmail-pln">
</span><span class="gmail-com"># TODO: fix to allow choice of dock location</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">iface</span><span class="gmail-pun">.</span><span class="gmail-pln">addDockWidget</span><span class="gmail-pun">(</span><span class="gmail-typ">Qt</span><span class="gmail-pun">.</span><span class="gmail-typ">LeftDockWidgetArea</span><span class="gmail-pun">,</span><span class="gmail-pln"> self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget</span><span class="gmail-pun">)</span><span class="gmail-pln">
self</span><span class="gmail-pun">.</span><span class="gmail-pln">dockwidget</span><span class="gmail-pun">.</span><span class="gmail-pln">show</span><span class="gmail-pun">()</span></code></pre>
<p style="white-space:pre-wrap">I don't know if it's related, but when I try to create a signal this error is show:</p>
<blockquote>
<p style="white-space:pre-wrap"><i>File "XXXXXXXXXXX/PruebaExp.py", line 176, in initGui
self.dockwidget.signalBox.connect(self.enviadato) AttributeError: 'NoneType' object has no attribute 'signalBox'</i></p>
</blockquote>
<p style="white-space:pre-wrap">Same error when I try to acces a pushButton:
</p><p style="margin:0px 0px 0px 40px;text-indent:0px;white-space:pre-wrap"><i>File "/home/luismi/.qgis2/python/plugins/PruebaExp/PruebaExp.py", line 221, in run</i></p><div style="margin-left:40px">
</div><p style="margin:0px 0px 0px 40px;text-indent:0px;white-space:pre-wrap"><i> self.dockwidget.pushButton.clicked.connect(self.enviadato)</i></p><div style="margin-left:40px">
</div><p style="margin:0px 0px 0px 40px;text-indent:0px;white-space:pre-wrap"><i> AttributeError: 'NoneType' object has no attribute 'pushButton'</i></p><p style="white-space:pre-wrap">Maybe is due to something I missed during the building of the plugin. I'm using QGIS 2.18.14.</p>
</div><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><span><font color="#888888"><span><font color="#888888">Luís Miguel Royo Pérez. <br>Analista-Programador GIS<br>Av. Blasco Ibañez nº 1. Manises (Valencia)<br>Teléfono: 679846103 <br>web: <a href="http://inisig.com" target="_blank">inisig.com</a></font></span></font></span><br><br></div></div></div>
</div>