Upgrade to PySide6#163
Conversation
…er and taskrunner GUI. The jupyter project is using qtpy (more trouble than it's worth) but the current PyPI release is not supporting PySide6 yet. Had to install 2.0.0dev from source.
# Conflicts: # setup.py # src/qudi/util/uic.py
For some reason any of these commands can cause a race condition but only on Windows, on Linux this worked fine. The race condition leads to full crash of qudi during startup. Commenting the whole reset function during startup and later calling it, e.g. via the GUI is fine, no error, just during startup. Commenting this out for now, do we actually need it, because the GUI resotres fine, even without these lines...
PySide6 made RecursiveMutex a standalone class, no longer inheriting from Mutex. Therefore, also our definition is now made standalone.
|
The changes introduced by @mohitulm, successfully fix the warning messages: |
Neverhorst
left a comment
There was a problem hiding this comment.
Just quickly tested it with all latest packages and Python version (3.14). The more important test is the field test over a prolonged period of time in the lab, as you did at the IQO.
- There is a visual bug now with the manager GUI when hovering over a module

- I get a Qt warning logged when closing qudi with the time series window open:
warning Qt QMainWindow::saveState(): 'objectName' not set for QDockWidget 0x2ae61bd1d50 'Trace settings; warning Qt QMainWindow::saveState(): 'objectName' not set for QToolBar 0x2ae5f400af0 'Trace controls'
Apart from that it seems to run smoothly.👍🏻
If you have used it productively over the last couple of month and introduced basic integration tests, I see no reason not to merge it after the stuff above has been fixed.
Thank you very much for driving this forward @TobiasSpohn
|
The latest changes in Commit 6c740b9 addresses the visual glitch on Windows in the Both changes have been tested on |
Description
This PR introduces the upgrade from
PySide2toPySide6. This change no longer requires the maximum Python3.10version requirement as well.The PR is based on PR #45, and mostly contains renaming of the imports.
The upgrade also required the import paths of many of the Qt Enums to be changed.
I used
pyrights static type checking to identify the errors of these imports and renamed them until none remained.Motivation and Context
PySide2has been for long prohibiting the compatibility of Qudi with newer Python versions (>3.10).This caused some packages to also have an upper version number limit as they no longer support older Python versions.
Furthermore, support for Python
3.10ends in fall this year, causing more packages to be incompatible. To ensure continued use of Qudi an upgrade of the Qt framework is necessary.How Has This Been Tested?
The changes have been tested on various
qudi-iqo-modulesdummy configurations.It has also been tested on some confocal setups for at least two weeks, the longest test was since November 2025.
While it seems to work flawlessly on Linux, on Windows machines a Qt Warning is showing up from time to time:
The requested buffer size is too big, ignoring. @takuya-ulm investigated this and this seems to originate from the.svgicons of the buttons in the GUI. We did not yet implement a solid solution to prevent these warnings, however they also do not infer with the use of Qudi, they are just once in a while printed to the logger.Types of changes
Checklist:
/docs/changelog.md.(syntax, indentation, mutable default values, etc.).