aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/doc/extras/QtCore.Slot.rst
blob: 3ed2a245c1b3d20c6adef29f9e4eaefb5f0f4e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
PySide6.QtCore.Slot
===================

.. currentmodule:: PySide6.QtCore
.. py:decorator:: Slot([type1 [, type2...]] [, name="" [, result=None, [tag=""]]])

       :param name: str
       :param result: type
       :param tag: str

    ``Slot`` takes a list of Python types of the arguments.

    The optional named argument ``name`` defines the slot name. If nothing is
    passed, the slot name will be the decorated function name.

    The optional named argument ``result`` specifies the return type.

    The optional named argument ``tag`` specifies a value to be returned
    by :meth:`QMetaMethod.tag`.

    This implementation is functionally compatible with the PyQt one.

    =======  ===========  ======
    Module   PyQt         PySide
    =======  ===========  ======
    QtCore   pyqtSignal   Signal
    QtCore   pyqtSlot     Slot
    =======  ===========  ======

    .. seealso:: :ref:`tutorial_signals_and_slots`

    Q_INVOKABLE
    -----------

    There is no equivalent of the Q_INVOKABLE macro of Qt
    since PySide6 slots can actually have return values.
    If you need to create a invokable method that returns some value,
    declare it as a slot, e.g.:

    ::

        class Foo(QObject):
            @Slot(float, result=int)
            def getFloatReturnInt(self, f):
                return int(f)