Установить свойства виджета в 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
📈Хешрейт биткоина растет на фоне декабрьского ралли BTC
🔹 За месяц хешрейт вырос на 5%, положение майнеров улучшилось.
🔹 BTC пробил $106 000 и обновил максимум на $106 636 в понедельник.
⚠️ Возможна коррекция из-за укрепления доллара перед заседанием ФРС. Вместе с тем поддержка на $100 000 может сдержать сильное падение.
🔹 Данные за декабрь:
Хешрейт BTC: 773 Eh/s.
Доход майнеров: $57 300 за блок.
Хешрейт 14 майнинг-компаний США: 222 Eh/s (+94%).
Их капитализация выросла на 50% после выборов.
🔹Американские компании контролируют до 30% хешрейта.
#Bitcoin#Hashrate#BTC
АкадемияGarantex|Garantex Announcements|ВКонтакте|YouTube
BTC Transfers and Major Investments
🚨 1,430 #BTC (~$141.57M) transferred from unknown wallets. 🟠 Semler Scientific acquired 871 #Bitcoin for $88.5M at $101,616 each. 🎮 Beamable raised $13.5M in Series A led by Bitkraft for decentralized gaming infrastructure. Taproot Wizards secured $30M to expand OP_CAT functionality on Bitcoin. Bitcoin hash rate reaches all-time high.
🔗 Details: Whale Alert, Beamable, Taproot Wizards, Bitcoin Hashrate
#BTC#Bitcoin#DeFi#VC#Gaming#Startup#Funding#Investment#Hashrate#Blockchain#Crypto
Первый день в Дубае — сразу в офисе #MyMining.
Познакомился лично с основателями.
Уровень структуры, прозрачности и подхода к майнингу впечатляет.
Кто хочет увидеть экосистему изнутри — вот мой реф:
👉https://mymining.ai/register?ref=tonysminig
Это только начало. 🚀
@cz_binance@APompliano
#Bitcoin#Mining#Crypto#Dubai#BTC#Hashrate#MiningLife
Bitcoin Mining Difficulty Hits New High
On February 9, Bitcoin mining difficulty surged by 5.61%, reaching a historic maximum of 114.17 trillion. Hashrate has also hit an all-time high of 864.8 EH/s, with the average block time now at 9.5 minutes. Read more here.
#Bitcoin#Mining#Blockchain#Crypto#Economics#Tech#Trends#Innovation#Hashrate#Difficulty#Market
Texas Proposes State Bitcoin Reserve
Texas Senator Charles Schwertner proposes a bill for a Strategic Bitcoin Reserve, indicating a significant move towards cryptocurrency adoption at the state level. Meanwhile, Bitcoin mining difficulty reaches an all-time high over 110 trillion, showing robust hashrate growth post-China mining ban.
Details from Watcher Guru.
#Bitcoin#Texas#Crypto#Mining#Blockchain#Regulations#Reserve#Senate#Innovation#Finance#DigitalAssets#Investment#Altcoins#HODL#Hashrate#MiningDifficulty#TexasSenate#Bill#Legislation#VC
Crypto Mining Highlights for January
Key developments in crypto mining for January include:
- Canaan launches new home mining machines.
- Petrobras plus Russia's largest power grid venture into Bitcoin mining.
- Hashrate Index unveils Top 10 Bitcoin Mining ASIC Machines for 2025.
- Cipher Mining secured a $50M investment from SoftBank.
For more details, visit Wu Blockchain News.
#CryptoMining#Bitcoin#ASIC#Canaan#SoftBank#Petrobras#Hashrate#Investment#MiningMachines#BitcoinMining#Crypto#VC#TechNews#Blockchain#CryptoNews#Finance#Startup
US Dominates Bitcoin Mining Landscape
The US leads with over 40% of Bitcoin's hashrate. Foundry, the largest mining pool, holds 36.5% share, raising concerns over centralization. MicroStrategy aims to raise $2B through preferred stock to enhance its Bitcoin holdings, part of its '21/21 Plan'. Expected offer in Q1 2025, pending market conditions.
Read more: CoinTelegraph | MicroStrategy Press | The Block | tl;dr
#Bitcoin#Mining#US#Foundry#MicroStrategy#CapitalRaise#PreferredStock #21/21Plan #Hashrate#Crypto#Finance#Investment#Blockchain#StockMarket#USDC#Billion#Q12025#MarketConditions#WhaleAlert#BlackRock#VC
Mining Project Linked to Notcoin?
Emerging mining project possibly linked to The Open Builders, but not confirmed. Design resembles their work. Early supporters encouraged to invest, but caution advised due to potential volatility. Bitcoin has hit a new all-time hashrate of 1000 EH/s, with 40% concentrated in the US led by Foundry USA at 36.5% share. China still holds a significant portion of Bitcoin mining. In other news, Coinbase is considering tokenized stocks for its Base blockchain, while Ethena announces new products including an institutional synthetic stablecoin and a Telegram-based app. Phantom wallet team denies rumors of an upcoming airdrop or token launch.
#Mining#Bitcoin#Cryptocurrency#Notcoin#TheOpenBuilders#Ethena#Stablecoins#PhantomWallet#COIN#Base#Funding#CryptoPayments#Investing#Hashrate#Blockchain#DeFi#CryptoNews#Tech#US#China#Foundry