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

6.4: Signals with several parameters where the 1st is an enum no longer work with Python 3.11

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • None
    • 6.4.0
    • PySide
    • None
    • All
    • df87bd0d6c (pyside/pyside-setup/dev) 9929ee849c (pyside/pyside-setup/6.4) 9929ee849c (pyside/tqtc-pyside-setup/6.4) df87bd0d6c (pyside/tqtc-pyside-setup/dev)

    Description

      With the attached pyside2095.py (mouse click)

      Python 3.11.0
      Qt 6.4.1 (x86_64-little_endian-lp64 shared (dynamic) debug build; by GCC 11.3.0)
      handler1 1 type= AlignmentFlag
      Traceback (most recent call last):
        File "/home/frkleint/pyside2095.py", line 27, in mousePressEvent
          self.test_sig2.emit(Qt.AlignLeft, "bla")
      TypeError: test_sig2(PyObject) only accepts 1 argument(s), 2 given!
      

      as opposed to

      Python 3.10.6
      Qt 6.4.1 (x86_64-little_endian-lp64 shared (dynamic) debug build; by GCC 11.3.0) [limited API]
      handler1 AlignmentFlag.AlignLeft type= AlignmentFlag
      handler2 AlignmentFlag.AlignLeft type= AlignmentFlag bla
      

      The signal with 1 parameter works, note though that the enum is printed as int in 3.11. The signal with 2 parameters does not work.

      First noticed on the tabbedbrowser example:

      p examples\webenginewidgets\tabbedbrowser\main.py
      
      Traceback (most recent call last):
        File "C:\dev\pyside\pyside-setup64i\examples\webenginewidgets\tabbedbrowser\browsertabwidget.py", line 100, in _current_changed
          self._update_actions(index)
        File "C:\dev\pyside\pyside-setup64i\examples\webenginewidgets\tabbedbrowser\browsertabwidget.py", line 108, in _update_actions
          self._check_emit_enabled_changed(web_action, enabled)
        File "C:\dev\pyside\pyside-setup64i\examples\webenginewidgets\tabbedbrowser\browsertabwidget.py", line 97, in _check_emit_enabled_changed
          self.enabled_changed.emit(web_action, enabled)
      TypeError: enabled_changed(PyObject) only accepts 1 argument(s), 2 given!
      Traceback (most recent call last):
        File "C:\dev\pyside\pyside-setup64i\examples\webenginewidgets\tabbedbrowser\webengineview.py", line 56, in _enabled_changed
          self.enabled_changed.emit(web_action, action.isEnabled())
      TypeError: enabled_changed(PyObject) only accepts 1 argument(s), 2 given!
      

      Attachments

        1. pyside2095.py
          1 kB
          Friedemann Kleint
        For Gerrit Dashboard: PYSIDE-2095
        # Subject Branch Project Status CR V

        Activity

          People

            ctismer Christian Tismer
            kleint Friedemann Kleint
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes