IDA 9.1 Linux breaks Pyside6.QtWidgets.QWidget.setLayout

there is a file in the examples directory named populate_pluginform_with_pyqt_widgets.py

I cannot run that in IDA 9.1 Linux. I get the error:

TypeError: 'Pyside6.QtWidgets.QWidget.setLayout' called with wrong argument types: Pyside6.QtWidgets.QWidget.setLayout(QVBoxLayout)
Supported signature:
Pyside6.QtWidgets.QWidget.setLayout(PySide6.QtWidgets.QLayout)

It works fine on IDA 9.0 Linux and on IDA 9.1 Windows.

Hi!

This is a bit surprising to me, for a couple reasons:

  • IDA doesn’t ship with PySide6, but with PyQt5 (9.1 uses Qt5, not Qt6)
  • on a vanilla IDA 9.1, I get the example to work:

May I ask: did you add a Pyside6 distribution into IDA 9.1, somehow?

(We’ll obviously try to find a solution for you, but first I need to understand the problem a bit better. Too many unknowns at this stage.)

Thanks!

After som investigation it seem that PySide 6 is installed in the PYTHONPATH by Binary Ninja and that somehow conflicts with IDAs installation. It’s strange that 9.0 works but 9.1 is not.

I ran into the same issue on my end. I can confirm 9.0 did not have this as well. My solution to get rid of the ugly output errors (mine were cosmetic) was to just pip uninstall the lib so the idalib init.py script was happy (I recall this is what I traced it back to).

1 Like