Qt6 QtCore.QRegularExpression not available in Qt.py
Opened this issue · 2 comments
Hi, When I try to import QtCore.QRegularExpression from Qt, I get an error.
Importing directly from PySide6 works.
Example in Python3.11 with PySide6 and Qt.py:
Python 3.11.9 (main, Oct 30 2024, 17:54:48) [GCC 11.3.1 20221121 (Red Hat 11.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
from Qt.QtCore import QRegularExpression
Traceback (most recent call last):
File "", line 1, in
ImportError: cannot import name 'QRegularExpression' from 'Qt.QtCore' (unknown location)
from PySide6.QtCore import QRegularExpression
print(QRegularExpression)
<class 'PySide6.QtCore.QRegularExpression'>
Looks like it's been remapped to QRegExp for backwards compatibility with Qt 4 and 5.
I can't make it work using QRegEx to get code compatible with Qt5 and Qt6
The best way I found is to do the import in try/except and use QRegularExpression
Example:
try:
from PySide6.QtCore import QRegularExpression
except:
from PySide2.QtCore import QRegularExpression
proxy_model = QtCore.QSortFilterProxyModel()
proxy_model.setFilterRegularExpression(QRegularExpression(re_pattern, QRegularExpression.CaseInsensitiveOption))
Any attemps to write compatible code using QRegEx fails in either Qt5 or Qt6