В прошлом посте говоря "Все вызовы теперь одинаковы" я несколько слукавил. Всё-таки есть в этом зоопарке версий некоторая несовместимость вызов которой просто так не унифицировать. Эти моменты вынесены в отдельный модуль QtCompat (compatibility). Там не так много функций но они довольно полезны.
Этот модуль содержит унификаци модуля shiboken2, функций loadUi, translate и несколько переименованных функций классов или изменённую сигнатуру аргументов и возвращаемых значений. Это единственное исключение из правила когда вам потребуется где-то изменить свой код кроме импортов и этот код не похож на обычный код PySide2.
Например, в PyQt4 и PySide есть метод
QHeaderView.setResizeMode
Для PyQt5 и PySide2 они были благополучно переименованы в
QHeaderView.setSectionResizeMode
Чтобы применить этот метод следует использовать такой код
from Qt import QtCompath
header = self.horizontalHeader()
QtCompat.QHeaderView.setSectionResizeMode(header, QtWidgets.QHeaderView.Fixed)
Унификация загрузки UI файлов:
# PySide2
from PySide2.QtUiTools import QUiLoader
loader = QUiLoader()
widget = loader.load(ui_file)
# PyQt5
from PyQt5 import uic
widget = uic.loadUi(ui_file)
# Qt.py
from Qt import QtCompat
widget = QtCompat.loadUi(ui_file)
Хорошо что таких моментов не много и их легко запомнить.
Полный список можно посмотреть в таблице.
#qt#tricks
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Based On: OxygenOS 16.0.3 (Base Oneplus 12R)
- Version: 1.2.0
- Codename: #Pong
- Build date: 14/04/26
🔽 Chnangelog & Download:Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- FW is included, do not flash again!
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- This build uses a non-secure crypto engine implementation. Any passwords set for privacy features (such as app lock, app hiding, or file vault) can be easily bypassed by simply deleting the associated storage files. Do not rely on it for real security or for protecting sensitive personal data.
Special Thanks to @Superuser1958 and @GhostRX89!
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Based On: OxygenOS 16.0.3 (Base Oneplus 12R)
- Version: 1.1.0
- Codename: #Pong
- Build date: 23/03/26
🔽 Cnangelog & Download:Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- Encryption: Storage is NOT encrypted. A Format Data is mandatory if you are currently encrypted.
- This build uses a non-secure crypto engine implementation. Any passwords set for privacy features (such as app lock, app hiding, or file vault) can be easily bypassed by simply deleting the associated storage files. Do not rely on it for real security or for protecting sensitive personal data.
Special Thanks to @Superuser1958 and @GhostRX89
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Version: 16.0.3 RC.1 (Base Oneplus 12R)
- Codename: #Pong
- Build date: 23/03/26
🔽 Download:Here
💰 Changelogs & Flashing: Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- Encryption: Storage is NOT encrypted. A Format Data is mandatory if you are currently encrypted.
- FOD Brightness Limitation: The fingerprint scanner will only register successfully when your screen brightness is manually set to at least 70%. Will be fixed in a future release.
- This build uses a NON-secure cryptoeng implementation. Any password protection can be trivially bypassed by deleting the storage files. Use this only to get the features working; do not rely on it for actual security or storing sensitive personal data.
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates