Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-1344

RecursionError with @Slot decorator when connecting slots by name and slot name is specified via kw list

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.15.0
    • Fix Version/s: None
    • Component/s: PySide
    • Labels:
      None
    • Environment:
      PySide2 5.15, python 3.7.7
    • Platform/s:
      All

      Description

      I'm reporting this here because I don't remember seeing this under PyQt5. Python gives me a RecursionError with the following code:

      from PySide2.QtCore import Slot, QMetaObjectfrom PySide2.QtCore import Slot, QMetaObject
      from PySide2.QtWidgets import QApplication, QComboBox
      
      class MyCombo(QComboBox):
      
          def __init__(self, *args, **kwargs): 
              super().__init__(*args, **kwargs)
              self.setObjectName('combo') 
              QMetaObject.connectSlotsByName(self)
          
          @Slot(int, name='on_combo_currentIndexChanged') 
          def change_current(self, _):
              print('never')
      
      
      app = QApplication([])
      combo = MyCombo()
      combo.show()
      combo.addItem('Foo')
      app.exec_() 
      

       
      Error:

      RecursionError: maximum recursion depth exceeded while calling a Python object
      

      The error appears when addItem() is called. Strangely, it only happens with the Slot decorator present. If remove the decorator and change the name of the slot to on_combo_currentIndexChanged the error does not appear.

        Attachments

        1. pyside1344_diag.diff
          12 kB
        2. pyside1344_log.txt
          76 kB
        3. pyside1344_no_kw_name.py
          0.6 kB
        4. pyside1344_trace.txt
          74 kB
        5. pyside1344.py
          0.6 kB

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              crmaurei Cristian Maureira-Fredes
              Reporter:
              3rdcycle Lukas Heiniger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes