PyQt6.uic Unknown Qt widget: QOpenGLWidget
John Thornton
dev at gnipsel.com
Mon Jan 1 18:02:44 GMT 2024
I have a simple ui file with just an QOpenGLWidget, when I try and run
the file I get this error.
Traceback (most recent call last):
File "/home/john/github/pyqt6/QOpenGLWidget/./oglw6-10.py", line 18,
in <module>
gui = main()
^^^^^^
File "/home/john/github/pyqt6/QOpenGLWidget/./oglw6-10.py", line 12,
in __init__
uic.loadUi('oglw6-10.ui', self)
File "/usr/lib/python3/dist-packages/PyQt6/uic/load_ui.py", line 86,
in loadUi
return DynamicUILoader(package).loadUi(uifile, baseinstance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/PyQt6/uic/Loader/loader.py",
line 62, in loadUi
return self.parse(filename)
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
1014, in parse
self._handle_widget(ui_file.widget)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
842, in _handle_widget
self.traverseWidgetTree(el)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
818, in traverseWidgetTree
handler(self, child)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
280, in createWidget
self.traverseWidgetTree(elem)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
818, in traverseWidgetTree
handler(self, child)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
512, in createLayout
self.traverseWidgetTree(elem)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
818, in traverseWidgetTree
handler(self, child)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
555, in handleItem
self.traverseWidgetTree(elem)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
818, in traverseWidgetTree
handler(self, child)
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
271, in createWidget
self.stack.push(self._setupObject(widget_class, parent, elem))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/PyQt6/uic/uiparser.py", line
233, in _setupObject
obj = self.factory.createQtObject(class_name, object_name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/PyQt6/uic/objcreator.py", line
117, in createQtObject
raise NoSuchWidgetError(ctor_name)
PyQt6.uic.exceptions.NoSuchWidgetError: Unknown Qt widget: QOpenGLWidget
I grepped for QOpenGLWidget in /usr/lib/python3/dist-packages/PyQt6/uic
and found it in
john at cave:/usr/lib/python3/dist-packages/PyQt6/uic$ grep -irn
'QOpenGLWidget' *
grep: Compiler/__pycache__/qtproxies.cpython-311.pyc: binary file matches
Compiler/qtproxies.py:302: "QLineEdit", "QMainWindow",
"QMenuBar", "QOpenGLWidget",
Checking PyQt5 (which works) I find on a slightly different line
john at cave:/usr/lib/python3/dist-packages/PyQt5/uic$ grep -irn
'QOpenGLWidget' *
grep: Compiler/__pycache__/qtproxies.cpython-311.pyc: binary file matches
Compiler/qtproxies.py:289: "QLineEdit", "QMainWindow",
"QMenuBar", "QOpenGLWidget",
I'm running
john at cave:~$ uname -a
Linux cave 6.1.0-10-rt-amd64 #1 SMP PREEMPT_RT Debian 6.1.38-1
(2023-07-14) x86_64 GNU/Linux
and PyQt is installed from Debian
Thanks
JT
More information about the PyQt
mailing list