[PyQt] Very simple signal/slot "transference"/encapsulation?
Denis Rouzaud
denis.rouzaud at gmail.com
Wed Jan 17 12:32:31 GMT 2018
Hi Jonathan,
You can connect a signal directly to another signal. So in your class
definition:
editingFinished = pyqtSignal()
def __init__(self, ....):
.....
myLineEdit.editingFinished.connect(self.editingFinished)
Hope this helps,
Denis
Le mer. 17 janv. 2018 à 07:54, J Barchan <jnbarchan at gmail.com> a écrit :
> I inherited code using a QLineEdit. I have to change that into a (what I
> call) a "composite" widget, consisting of a QWidget which holds a
> QHBoxLayout which in turn holds the original QLineEdit, plus a QPushButton;
> the button leads to something which can populate the QLineEdit.
>
> I'm OK with the design, apart from signal/slot handling. The outside
> world used to go QLineEdit.editingFinished.connect(...). To encapsulate,
> I'd like it to go CompositeWidget.editingFinished.connect(...), rather
> than addressing the QLineEdit directly. So I want to simply "transfer"
> the *existing* editingFinshed signal/slot from the QLineEdit to the
> CompositeWidget level, "transparently".
>
> This is for PyQt 5 only, not earlier versions. So far I've never had to
> use PyQt @ annotations (@pySignal/Slot or whatever they are), and I'm not
> sure I ought need to, given the definition in QLineEdit in QtWidgets.pyi
> is already as plain as
>
> def editingFinished(self) -> None: ...
>
> So, given that I regard minimal code as neat/desired, what is like the
> *minimum* I need to write to achieve this? I will need the outside
> world to be able to connect(), my widget needs to be able to emit() it
> (when the user has finished interacting via the button, widget populates
> the QLineEdit and needs that to raise editingFinished signal to the
> outside world). I think that's it!
>
> --
> Kindest,
> Jonathan
> _______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20180117/e4d8cd98/attachment.html>
More information about the PyQt
mailing list