Установить свойства виджета в 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
Importante ‼️
🔴#Banxico reveló que, durante los dos primeros meses de 2026, el envío de #remesas había presentado una ligera caída 💵🔻🇲🇽
https://revistaelpolitico.com/economia/remesas-mexico-crecen-marzo-superan-5-mil-300-mdd/
🇨🇺🌐🇨🇺
✅Recargue su cuenta en MLC/CUP usando criptomonedas.
💠QvaStorebot ofrece la posibilidad de obtener MLC, CUP, Saldo Móvil, Saldo Nauta ó Saldo Qvapay usando Criptomonedas.
👉Servicios que ofrecen
👉Tarifas
💠 Fácil de usar Sólo deben depositar la Criptomoneda que valla a usar y elegir el servicio que van a usar.
👉Criptomonedas aceptadas
✅Link para iniciar el bot:
https://t.me/QvaStore_bot?start=r0279781297
💵 También podrán ganar dinero con su sistema de referidos donde ganarán el 1% de todos los depósitos de sus referidos.
✅ Únase a nuestro canal:
@ganardineroseguro
#remesas#mlc#criptocuba
🎁 Promoción disponible en Tropipay
🎁€10 por registrarse y cumplir con sus términos
🎁€10 por cada referido que cumpla sus términos
👉 Promoción disponible hasta el 15-1-2023
👉Lea sus términos aquí
#tropipay#banktransfer#remesas
🌎 Utiliza los servicios de QvaStore para enviar #Remesas#MLC a #Cuba desde cualquier parte del mundo.
💸 1$ ~ 0.85 MLC
💸 Envías 100$, recibes 85 MLC
💰 Aceptamos #Bitcoin , #BNB , #tron, #USDT-TRC20, #SHIB y mucho más
🤖https://t.me/QvaStore_bot?start=r0279781297
💰 GUÍA: RECIBIR PAGOS INTERNACIONALES EN CUBA 💰
📖 La guía definitiva 2025 ya está disponible
🌍 ¿Freelancer, emprendedor o recibes remesas?
Esta guía es para ti. Aprende a recibir pagos del exterior de forma segura, rápida y sin complicaciones.
✨ En esta guía descubrirás:
✅ Configurar tu cuenta QvaPay en 4 pasos
✅ Recibir pagos con criptomonedas (USDT, BTC, y más)
✅ Convertir tu saldo a CUP, MLC o USD
✅ Usar el mercado P2P de forma segura
✅ Errores comunes que debes evitar
🎯 Métodos para recibir pagos:
💎 Criptomonedas (USDT, BTC, Lightning)
💙 PayPal
🔄 Mercado P2P
🏦 Transferencias bancarias ACH
💡 Caso real:
María, diseñadora freelance en La Habana, pasó de esperar semanas y pagar altas comisiones a recibir sus pagos en 5 minutos y convertirlos a CUP en menos de 1 hora.
QvaPay = De la incertidumbre a la eficiencia total
📚 Lee la guía completa paso a paso:
👉https://qvapay.blog/guides/recibir-pagos-internacionales-cuba-qvapay/
🚀 Tiempo estimado: 10-15 minutos para configurar todo
#QvaPay#PagosInternacionales#Cuba#Freelancer#Remesas#USDT#Guia#Tutorial#P2P#Emprendedores
💳💳💳💳💳💳💳💳💳💳💳
⚠️👾👾👾👾👾
⚠️
🔡🅰️🔡🔡🔡🔡🅰️
✍️✍️✍️✍️✍️✍️✍️✍️
✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️
Adquiera una tarjeta digital prepagada VISA Vanilla y hágase con un método de pago versátil y sencillo de utilizar en cualquier plataforma donde se acepte Visa 💳
Precios en USD
✏️
✏️➡️💲3️⃣3️⃣
✏️
✏️➡️💲6️⃣5️⃣
✏️
✏️
✏️➡️💲1️⃣2️⃣6️⃣
‼️🇨🇺 SERVICIO PARA
TODA #CUBA🇨🇺‼️
Con nosotros podrá tener acceso a esas opciones de pago online que siempre quiso pero no tenía ni idea de que podía hacerlo desde Cuba
Acceso a características Premium en aplicaciones de Diseño y Edición, suscripciones a almacenamiento en la nube, números extranjeros de teléfono virtuales, VPN en cualquier ubicación del mundo, software de producción de audio e imagen, desarrollo web, coding, etc
¡Libros, televisión y música online, videojuegos!
Podemos hacerle llegar suscripciones, códigos y tarjetas digitales de saldo a sus cuentas en...
🛒#Amazon#Prime
📱#Apple#iTunes
🎮#Battlenet (#Blizzard's World of Warcraft #WoW)
ℹ#Dota2
🎮#Garena
🕹#LeagueofLegends
📺#Netflix
🎮#Nintendo
🎮#Origin
🎮#PlayStation Network #PSN
🎮#Riot
🎵#Spotify
🎮#STEAM
💬#Telegram#Premium
📺#Twitch
🎮#Xbox Live
🇨🇺#Remesas#Pagos
📱 Tenemos alternativas para los pagos dentro de la Google Play Store con acceso a Google One y al Play Pass 📱
Contáctenos por #Telegram, por #Google, #Facebook, #Instagram, #Twitter y por #WhatsApp
💬@jcslimcuba
💬https://wa.me/5353717679
🌐https://m.me/jcslimcuba.fb
☎️ +5353717679
🖥https://linktr.ee/jcslimcuba
#saldodesteam#steamwallet#cuba#psn#battlenet#steam#apple#steamgiftcard#jcslimcuba#giftcards#appleitunes#tarjetasderegalo#steamcuba#fortnite#Amazon#amazonmusic#amazonprime#primevideo#promo#visa#vanilla