Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
Banking & telecom will potentially spend ₹2,000 cr over 5 years to become #quantum ready. A Feb 2026 roadmap calls for phased adoption of post-quantum cryptography, prioritising critical sectors & targeting nationwide rollout by 2033.
For PSBs, this means auditing existing encryption, mapping exposed systems & piloting PQC post-quantum or hybrid schemes. Since encryption is deeply embedded across apps, payment rails, ATMs, cloud & data centers, the transition will be gradual & costly but the only counter to Harvest Now, Decrypt Later attacks.
India’s first #quantum computing test beds to be set up in Amaravati
https://www.thehindu.com/sci-tech/technology/indias-first-quantum-computing-test-beds-to-be-set-up-in-amaravati/article70841655.ece/amp/
⚡️ Rasmda ko'rib turgan qandilga o'xshash narsa Quantum kompyuteri deb ataladi
Bu haqida ko'proq ma'lumotga ega bo'lishni xohlaysizmi?
👉🏼Birinchi raqamli Windows Blog | #quantum#manba
⚡️ Rasmda ko'rib turgan qandilga o'xshash narsa Quantum kompyuteri deb ataladi
Bu haqida ko'proq ma'lumotga ega bo'lishni xohlaysizmi?
👉🏼Birinchi raqamli Windows Blog | #quantum#manba
⚡️ Rasmda ko'rib turgan qandilga o'xshash narsa Quantum kompyuteri deb ataladi
Bu haqida ko'proq ma'lumotga ega bo'lishni xohlaysizmi?
👉🏼Birinchi raqamli Windows Blog | #quantum#manba
MASSIVE!
National #Quantum Mission achieves 1,000-km secure communication milestone
India has successfully demonstrated a 1,000-km secure quantum communication network, which is one of the longest in the world.
This achievement comes less than two years after the mission's launch in October 2024
Read more: https://www.pib.gov.in/PressReleasePage.aspx?PRID=2250162®=3&lang=2
#tech
Congratulations to Andhra Pradesh CM Chandrababu Naidu for launching India's first indigenous open-access #quantum computing test beds today (World Quantum Day) at SRM University in Amaravati and Medha Towers in Gannavaram.
Part of the Amaravati Quantum Valley initiative, these "Amaravati 1S" (superconducting at SRM) and "1Q" facilities will enable hardware testing, certification, research, and startups—positioning AP as a global quantum hub for innovation in computing, materials, and tech.
#Research
Solana Unveils Quantum-Resistant Vault
Solana developers introduce the *Solana Winternitz Vault*, a quantum-resistant solution using a hash-based signature system that generates unique keys for every transaction. Currently, it's an optional feature rather than a mandatory network upgrade. More details: Decrypt
#Solana#Quantum#Blockchain#Security#Crypto#VC
🌎 Researchers use particle accelerators like the Large Hadron Collider to search for evidence of extra dimensions tied to parallel worlds. These experiments look for missing energy or unusual particle behavior that might reveal hidden spatial dimensions. No direct evidence has been found, but data continues to challenge and refine our understanding of reality’s structure. ✨
#physics⚡#quantum⚡#space
👉subscribe Interesting Planet
👉more Channels
🌎 Scientists exploring the mysteries of parallel worlds suggest that, according to quantum mechanics, alternate dimensions could exist alongside our own—each with its unique version of reality. Though unproven, this idea helps explain puzzling phenomena in physics and inspires everything from science fiction to cutting-edge research about the nature of our universe. ✨
#physics⚡#quantum⚡#multiverse
👉subscribe Interesting Planet