<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">PyQt5.7.  I am having trouble `emit()`ing a signal and receiving its arguments correctly.  I have read <a href="http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html">http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html</a> carefully.<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><b>Declaration</b>:</div><br><div style="font-family:tahoma,sans-serif" class="gmail_default"><span style="font-family:monospace,monospace">    # class variable for "notifyProgress" signal, for displaying a progressbar<br>    notifyProgress = QtCore.pyqtSignal(int, str)</span><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><b>Initialisation</b>:</div><div style="font-family:tahoma,sans-serif" class="gmail_default"><br></div><div class="gmail_default"><span style="font-family:monospace,monospace"> self.notifyProgress.connect(self.updateProgress)</span></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><b>Slot</b>:</div><div style="font-family:tahoma,sans-serif" class="gmail_default"><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><span style="font-family:monospace,monospace">    def updateProgress(self, val: int, text: str):<br>        # slot for self.notifyProgress<br>        # eprpayrequestfunctions.runEpr() calls this to indicate progress<br>        # if it passes an integer it's the desired value for the progressbar<br>        # if it passes a string it's the desired value for the label<br>        if val is not None:<br>            self.progressBar.pb.setValue(val)<br>        if text is not None:<br>            self.progressBar.label.setText(text)</span><br><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><b>Signals</b>:</div><div style="font-family:tahoma,sans-serif" class="gmail_default"><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default"><span style="font-family:monospace,monospace">1. notifyProgress.emit(None, "Some text")<br><br>2. notifyProgress.emit(i / 2, None)</span></div><br><div class="gmail_default" style="font-family:tahoma,sans-serif"><b>Behaviour in slot</b>:<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">The problem is the passing of <span style="font-family:monospace,monospace">None</span> from <span style="font-family:monospace,monospace">emit()</span>:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div>1. <span style="font-family:monospace,monospace">val</span> arrives in slot as <span style="font-family:monospace,monospace">1261196128</span>.<div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><div class="gmail_default" style="">2. <span style="font-family:monospace,monospace">text</span> arrives in slot as <span style="font-family:monospace,monospace">''</span> (empty string).</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""></div><b>Questions</b>:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><ul><li>Where is this behaviour for <span style="font-family:monospace,monospace">None</span> as an <span style="font-family:monospace,monospace">emit()</span> parameter documented?</li><li>What is the correct/best way for handling this correctly/easily?<br></li></ul></div></div><div dir="ltr"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><span style="font-family:tahoma,sans-serif">Kindest,</span></div><div><span style="font-family:tahoma,sans-serif">Jonathan</span></div></div></div></div></div>
</div></div></div></div></div></div></div>