<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Sorry for the formatting here it is again attached as a text file.<BR> <BR><br> <BR><div><hr id="stopSpelling">From: coastalchaos@hotmail.co.uk<br>To: pyqt@riverbankcomputing.com<br>Subject: converting old signal/slot to new signal/slot<br>Date: Wed, 27 May 2015 16:43:45 +0100<br><br>


<div dir="ltr">

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>
<div dir="ltr">Hi all,<br></div><div dir="ltr">This is my first post so sorry if I'm missing information. I've researched as much as I can but I can't fathom a way forward.</div><div dir="ltr"> </div><div dir="ltr"><br>I'm having a headache trying to convert old style signal/slots to new style. I'm a newbie and the examples I've read deal with simple use cases and the pyqt 5.4.1 documentation on signals_slots.html hasn't shed light on what I should do. </div><div dir="ltr">I'm moving an application from 4 to 5 so I can't stay with the old method due to Qt4 support finishing at the end of the year and sip not compiling on mavericks.<br> <br>I've looked at the zetcode tutorials and they use the new style however the Mark Summerfield book which is using the old method.</div><div dir="ltr"> </div><div dir="ltr">It seems in the old way you could use any object to create a new signal and connect it to a slot</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr">Maybe if I give a scenario it will help explain:-</div><div dir="ltr"> </div><div dir="ltr">##############     QT4      example  ###########################</div><div dir="ltr"> </div><div dir="ltr">#####################################################</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr">So, what I can deduce from that is that the code is creating a signal called "databaseChanged"(PyQt_Object) what will pass an object (any python object) to a slot that has been created and decorated to the on_database_updated_signal method.</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr">If I look at the PyQt5 documentation I have surmised that I need to create a signal using the pyqtSignal() factory and then attach it using the more pythonistic way of doing things.</div><div dir="ltr"> </div><div dir="ltr">The PyQt5 documentation says I need to connect using </div><div dir="ltr">    connect(slot, type, noreceiver_check)</div><div dir="ltr">examples given in the documentation connect the signal to the object doing the connection.</div><div dir="ltr">I've looked at examples such as <a href="http://www.pythoncentral.io/pysidepyqt-tutorial-creating-your-own-signals-and-slots/" target="_blank">http://www.pythoncentral.io/pysidepyqt-tutorial-creating-your-own-signals-and-slots/</a></div><div dir="ltr">and I've come up with the below but I feel that something is missing......</div><div dir="ltr"> </div><div dir="ltr"> <div dir="ltr">##############     QT5  example      ###########################</div><div dir="ltr"> </div></div><div dir="ltr"><br> </div><div dir="ltr">My question is, is this correct and what happens to the  QtCore.QCoreApplication.instance()</div><div dir="ltr"> </div><div dir="ltr">I think the emit will also need to change in the above example but I'll take one problem at a time.</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr">Oh, I've also looked at the Qt documentation for QtAssistant and I cant see a change between Qt4 and Qt5 Qobject connect() method so I'm at a loss as to why we have the new signal/slot system in PyQt5 (I am aware that it was introduced in Qt4. I'm sure as I get to grips with pyQt / pyQt5 the reson will become apparent but I'm a long way off of that)</div><div dir="ltr"> </div><div dir="ltr">Hopefully someone can provide guidance and show me the light.</div><div dir="ltr"> </div><div dir="ltr">TIA, Rob</div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr"> </div><div dir="ltr"><br> </div>
                                          </div></div>                                        </div></body>
</html>