Thanks for the additional information. Still it is a bug in Spyder, not
in Qt:

1) Cleanlooks and Plastique styles are inheriting from QProxyStyle.
2) So in Spyder’s HTMLDelegate.paint method, options.widget.style() returns a 
QProxyStyle.
3) In QProxyStyle.subElementRect method, the third argument is not optional, so 
should be specified: https://doc.qt.io/qt-5/qproxystyle.html#subElementRect

In C++, if the two-argument call is used, the compiler would ignore
QProxyStyle::subElementRect and fall back to
QCommonStyle::subElementRect. However, in Python there is no concept of
overloading methods so this is not possible.

So Qt and PyQt behave according to their documentation.

Replacing style.subElementRect(QStyle.SE_ItemViewItemText, options) with
style.subElementRect(QStyle.SE_ItemViewItemText, options, None) in
Spyder code seems to help.

With regards to crash when using GTK2, it is a different and known
issue. Qt uses GTK3 platformtheme (i.e. dialogs) by default, and it is
incompatible with GTK2. If you want to use GTK2 then you should export
QT_QPA_PLATFORMTHEME=gtk2. But I recommend against using GTK2 as it is
deprecated.

** Changed in: qtstyleplugins-src (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1832019

Title:
  Error when going to 'Tools -> Preferences -> Keyboard shortcuts' in
  Spyder3 in Bionic

Status in pyqt5 package in Ubuntu:
  Invalid
Status in qtbase-opensource-src package in Ubuntu:
  Invalid
Status in qtstyleplugins-src package in Ubuntu:
  Invalid
Status in spyder package in Ubuntu:
  New

Bug description:
  In Ubuntu 18.04 LTS
  Steps:

  1. Install spyder3 and qt5-style-plugins (sudo apt install spyder3 
qt5-style-plugins)
  2. Run spyder3
  3. Go to Tools → Preferences → General → Appearance
  4. Change the Qt window style to cleanlooks, gtk2 or plastique
  5. Go to Tools → Preferences → Keyboard shortcuts
  6. Error (or crash in case of gtk2)

  Keyboard shortcuts are not accessible.

  Here is the error:

    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/spyder/widgets/helperwidgets.py", line 
127, in paint
      textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options)
  TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): 
not enough arguments

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: spyder3 3.2.6+dfsg1-2
  ProcVersionSignature: Ubuntu 4.18.0-21.22~18.04.1-generic 4.18.20
  Uname: Linux 4.18.0-21-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.6
  Architecture: amd64
  CurrentDesktop: ubuntu:GNOME
  Date: Fri Jun  7 18:17:17 2019
  InstallationDate: Installed on 2018-11-29 (189 days ago)
  InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 
(20180725)
  PackageArchitecture: all
  SourcePackage: spyder
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pyqt5/+bug/1832019/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to