Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
halogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.2
- Codename: #Pong
- Updated: 26/05/02
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Changelog:
- Dimmed mode
- New launcher app drawer design
- Slidable tiles
- Battery charge limit
- Add font customization
- Add centered lockscreen clock style
- Add VRR mode
- April 2026 Security Patch
- Increase Bluetooth sound quality when using AAC or SBC
✍️ Note:
- Firmware is not included, based on NOS B4.0-251226-1110
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla with Sandboxed Play is officially supported).
🏆 Credits:
- Chandu
- Pong dev team & testers
- halogenOS Community
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
HalogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.0
- Codename: #Pong
- Initial Release: 25/09/25
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Note:
- Kernel is prepatched KSU
- Firmware is not included, latest is recommended
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla is officially supported).
- Refer to this post for future updates related to the ROM.
🏆 Credits:
- Chandu for Kernel (and DT which served as as a reference)
- Pong dev team & Testers
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
HalogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.0
- Codename: #Pong
- Initial Release: 18/08/25
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Note:
- Kernel is prepatched KSU
- Firmware is not included, latest is recommended
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla is officially supported).
- Refer to this post for future updates related to the ROM.
🏆 Credits:
- Chandu for Kernel (and DT which served as as a reference)
- @chrome6boy for testing
- Pong dev team
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
AviumUI - Unofficial | Android 16 | Nothing Phone (2)
📝 Details:
- Version: 16
- Build type: #Vanilla
- Device: #Pong
- Released: 27/11/2025
⬇️ Downloads: Here
📖 Changelogs: Here
🖼️ Screenshota: Here
🏷 Tags: #Avium#ROM#Avium#Vanilla#Unofficial
✍️Notes:
- Vanilla build ONLY
- Initial Nothing camera support available
- SukiSU Ultra and SusFS baked in
- OTA updates are planned in the future, however not supported as of now
- Signed with my keys
- Based on Lineage DT, Vendor and Kernel
- Use latest NOS 3 firmware
- If face any bugs report with logs
🏆Credits:
- Deadlylxrd for so much help with building my first ever ROM
- Chandu for DT
- Fabian & HELLBOY for Glyph
👤 Maintainer: @sevo9128
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Лучше выбери свой аромат в парфюмированных гелях NOTALONE, которые привлекают любовь!
Vanilla Lovers - влюбленность
Black pepper Neroli- страсть
Bergamot Amber Wood - глубина
#notalone#парфюмированныйгельдлядуша#blackpepper#vanilla#bergamot
LineageOS - Community | A14 | Nothing Phone (2)
✍️ Details:
- Version: 21.0
- Codename: #Pong
- Released: 17/07/2024
🔽 Download : Recovery | Fastboot
⚙️ Installation: Here
📸 Screenshots: Here
🆘 Support: Telegram
🔖 Tags : #ROM#Vanilla#Community#LOS#QPR3#U#NothingPhone2
✍️ Changelog
- Update from NOS 2.6.0
- USB OTG Fixed
- Fixed Status Bar Padding
- Read Notes 👇
✍️ Notes
- Flash These GAPPS to get Gapps with Pixel Launcher
- Stable Signed Build
- Meteoric kernel is baked in with prepatched KSU.
- Dolby Atmos Included
🏆 Credits
- Chandu for base device tree
- HellboyforMeteoric kernel
- Miki, Unluck & Ghost for all help
- Fabian for PA Glyph Implementation
😎 Maintainer: @Kartikey
🔔 Updates: @NothingPhone2Updates
💬 Chat: @NothingPhone2