Установить свойства виджета в 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
💵#VanEck has a model according to which by 2050 the BTK will become a reserve currency held by the world's central banks and used in international trade. In this scenario, the price of BTC rises to $3,000,000
📈Solana к концу 2025 года может достигнуть $520
🔹 Инвесткомпания VanEck прогнозирует рост курса Solana до $520 к концу 2025 года. В последние дни монета торгуется в диапазоне $200–220, а ее капитализация превысила $101 млрд.
🔹 Ожидается усиление спроса на смарт-контракты в сети SOL. 22% всех контрактов к концу года будут базироваться на этом блокчейне. Solana уже лидирует по объему торгов на децентрализованных биржах.
🔹 Рост денежной массы также сыграет свою роль. По оценке VanEck, показатель M2 в США увеличится до $22,3 трлн. Это поддержит приток капитала в криптоиндустрию.
🔹 VanEck в 2024 году подала заявку в SEC на запуск биржевого криптофонда ETF, который будет отслеживать результативность Solana на спотовом рынке. Другие игроки рынка также готовят аналогичные инструменты, которые будут интересны для институционалов.
#Solana#VanEck#Криптовалюты
🍀Друзья!
Встречайте 👁CryptoВзгляд!
В рамках этой рубрики известные представители блокчейн-индустрии и мира финансов щедро делятся с нами инсайтами и инсайдами — в кратком формате цитаты.
CryptoВзгляд — это:
✅ любопытные комментарии;
✅ актуальные прогнозы;
✅ нешаблонные оценки.
Оставайтесь с нами и читайте #CryptoВзгляд на Garantex News Russia!
#МэтьюСигел#VanEck
First Solana ETF Approved in USA
🚀 First Solana ETF ($SOL) appears at DTCC, paving the way for potential approval in the US.
🟢 Key step as DTCC handles all exchange settlements.
🟢 Applications previously submitted by VanEck, 21Shares, and Bitwise. Approval could boost institutional liquidity in Solana.
#Solana#ETF#Crypto#SEC#Finance#Investing#Markets#Liquidity#InstitutionalInvestors#VanEck#21Shares#Bitwise#DTCC#Trading
Steve Yun Speaks at Consensus HK
On February 20, Steve Yun from TON Foundation will present at Consensus HK, discussing 'Emerging Markets on the Road to Financial Freedom.' Join to explore DeFi's future and the impact of evolving regulations on Web3. Details here.
⚡️ OpenSea announces OS2 beta version and airdrop. Read more
🚓 In Thailand, Russians arrested for stealing Bitcoin worth $16.5 million. Read more
🧠 A look into the Metaverse and AR/VR projects you might have missed. Read more
🐋 VanEck says some US states will buy $23.5 billion in Bitcoin. Read more
👀 A new Bitcoin-ETF linked structured bond launches in Russia. Read more
🧐 JPMorgan identifies condition for Tether's compliance with US regulations. Read more
❌ Illegal Bitcoin farm shut down near Irkutsk. Read more
🤖 Sam Altman discusses features of GPT-4.5 and GPT-5. Read more
💫 BNB recovered losses following 2025 roadmap release. Read more
🔎 Ethereum Foundation allocates $120 million to DeFi protocols. Read more
👾 WLFI co-founder's X-account hacked to promote a scam. Read more
🔥 Former Greek finance minister criticizes Bitcoin maximalists. Read more
#Finance#DeFi#Web3#Bitcoin#OpenSea#Crypto#Ethereum#EthereumFoundation#Cryptocurrency#Blockchain#Thailand#Regulation#CryptoNews#SamAltman#AI#Innovation#Technology#Investment#Metaverse#ARVR#VanEck
Massive HEX Transfer to Burn Address
🚨 Over 50 billion #HEX tokens valued at $199 million transferred to a Burn Address from an unknown wallet, reports Whale Alert.
🟠 In other news, VanEck's Matthew Sigel forecasts that demand from 20 US Bitcoin Reserve bills could result in states purchasing over 242,787 Bitcoin, translating to a $114 billion opportunity!
More details on the transfer can be found here.
#HEX#Bitcoin#Crypto#WhaleAlert#VanEck#BTC#Blockchain#Finance#Investing#Ethereum#Markets#US#Reserve#Bill#Demand#Tokens#BurnAddress#Wallet#Value#Opportunity