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

pyside2-uic broken when handling action icons

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 5.12.0
    • PySide
    • None
    • Arch Linux x86_64
      Python 3.6.5
      "PySide2 User Interface Compiler version , running on PySide2 5.12.0." (output verbatim from pyside2-uic --version)
      Qt Designer 5.12.0
    • Linux/X11

    Description

      In the attached ui file, I've created a simple MainWindow with a toolbar. This toolbar has Actions, and those Actions have icons provided by the icon theme property.

      When attempting to compile this file into Python using pyside2-uic, a message about an error is output. Running with the debug flag, this is what I get:

      $ pyside2-uic main_window.ui -o main_window.py -d
      Traceback (most recent call last):
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/port_v3/invoke.py", line 34, in invoke
       exit_status = driver.invoke()
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/driver.py", line 60, in invoke
       self._generate()
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/driver.py", line 95, in _generate
       compileUi(self._ui_file, pyfile, self._opts.execute, self._opts.indent, self._opts.from_imports)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/__init__.py", line 143, in compileUi
       winfo = compiler.UICompiler().compileUi(uifile, pyfile, from_imports)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/Compiler/compiler.py", line 91, in compileUi
       w = self.parse(input_stream)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/uiparser.py", line 874, in parse
       actor(elem)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/uiparser.py", line 717, in createUserInterface
       self.traverseWidgetTree(elem)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/uiparser.py", line 695, in traverseWidgetTree
       handler(self, child)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/uiparser.py", line 668, in createAction
       elem)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/uiparser.py", line 155, in setupObject
       self.wprops.setProperties(obj, branch)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/properties.py", line 386, in setProperties
       prop_value = self.convert(prop, widget)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/properties.py", line 351, in convert
       return func(prop[0], **args)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/properties.py", line 179, in _iconset
       return self.icon_cache.get_icon(prop)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/icon_cache.py", line 49, in get_icon
       iset = _IconSet(iconset, self._base_dir)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/icon_cache.py", line 82, in __init__
       self._fallback = self._file_name(iconset.text, base_dir)
       File "/home/gdude/.local/share/virtualenvs/PyBalance-qIOxlXRY/lib/python3.7/site-packages/pyside2uic/icon_cache.py", line 103, in _file_name
       fname = fname.replace("\\", "\\\\")
      AttributeError: 'NoneType' object has no attribute 'replace'

      I had a quick look at the code therein, but I couldn't find any quick fixes. It's worth noting that editing the code to avoid setting self._fallback and then setting self._use_fallback to False results in a Python file where the actions are assigned empty Icon objects.

      Attachments

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

        Activity

          People

            crmaurei Cristian Maureira-Fredes
            gdude2002 Gareth Coles
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes