Установить свойства виджета в 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
💥Llavero Moto para KTM Duke
Regalo ideal para amantes de las motos en temporada de invierno
✅OFERTA: 14.86€
❌ Antes: 23.99€
💰Ahorras un 38%🔥
Diseño elegante en fibra de carbono y cuero PU para destacar tu pasión por las m
👉 Hazte con él y personaliza tus llaves ahora
#rebajas#llavero#ktm#motos#fibradecarbono
🛰️Oferta publicada en Coche y Moto
💥KTM Brabus 1400R 2025 – легендарная мощь в новом исполнении ‼️
✏️ Готовьтесь к адреналину! KTM и тюнинг-ателье Brabus представляют новую версию флагманского спортбайка – KTM Brabus 1400R 2025. Это не просто мотоцикл – это заявление о превосходстве, сочетающее в себе немецкую инженерную мысль и австрийскую страсть к скорости.
🔥 Сердце зверя
- 1400-кубовый V-образный твин с доработанной системой впуска и выхлопа – запас мощности свыше 180 л.с. и чудовищный крутящий момент.
- Усиленная рама и переработанная подвеска – для идеальной управляемости как на треке, так и на шоссе.
- Облегченная конструкция – широкое применение карбона и алюминиевых сплавов.
🎨 Эксклюзивный дизайн от Brabus
- Агрессивные обтекатели с увеличенными воздухозаборниками.
- Уникальная расцветка "Shadow Grey" с фирменными акцентами Brabus.
- Кованые колесные диски и титановая выхлопная система.
⚡ Технологии будущего
- Полностью цифровая приборная панель с поддержкой навигации и телеметрии.
- Адаптивная электроника: трековые режимы, антивиллинг, регулируемый контроль тяги.
- Опциональный пакет "Track Pro" с системой быстрого переключения передач и гоночной ABS.
💰 Цена и доступность
Официальные продажи стартуют в начале 2025 года, ожидаемая цена – от €35 000. Количество экземпляров будет ограничено – типичный для Brabus подход к эксклюзивности.
Ваши мысли? Стоит ли такая цена невероятных эмоций, которые обещает этот монстр? 💀🔥
#KTM#Brabus#Мотоциклы2025#Спортбайк#Эксклюзив
💥 KTM 450 RC: Новый спортбайк с двумя цилиндрами и 56 л.с. стартует в Китае‼️
✏️ Австрийский бренд, находящийся под новым руководством Bajaj, сделал неожиданный ход – официально представлен спортбайк KTM 450 RC. И это не просто обновление, а абсолютно новая модель с рядным двухцилиндровым двигателем!
🔥 Почему это важно?
Раньше руководство KTM отказывалось от идеи 450-кубового «параллельного» Twins, но после смены владельца проект не только вернули, но и запустили в серию. Правда, пока только для китайского рынка.
📊 Технический профиль:
· Двигатель: 449 см³, рядный 2-цилиндровый (270° кривошип)
· Мощность: 41 кВт (56 л.с.) – это на 4 л.с. больше, чем у донорской CFMoto 450 SR-S
· Максималка: 195 км/ч
· Вес: 168 кг (на 3 кг легче китайского аналога)
· Ходовая: Стальная решетчатая рама + алюминиевый односторонний маятник
· Подвески: Полностью регулируемые WP (вилка + моноамортизатор) + рулевой демпфер
· Тормоза: Радиальная 4-поршневая скоба WP Braking, 320 мм диск, Bosch ABS с функцией в поворотах
🎯 Что особенного?
· Эргономика: Агрессивная посадка с низкими клип-онами и высокими подножками – явно под трек.
· Электроника: Ride-by-wire, трекшн-контроль, квикшифтер, круиз-контроль, TFT-дисплей.
· Дизайн: Обтекатель с «крылышками» в стиле старшей модели KTM 990 RC R.
💸 Цена и перспективы в Европе
💵 Стоимость в Китае – 34 999 юаней (~4 400 евро). Старт продаж – апрель 2026 года.
➡️ Что думаете? Ждать KTM 450 RC на нашем рынке или это «китайский эксклюзив»?
#KTM#KTM450RC#НовыйСпортбайк#CFMoto#MotorcyclesNews#ДвухцилиндровыйKTM
💥 KTM Rescue: как Pierer Mobility готовится к 2025 году?
✏️ Компания Pierer Mobility Group — мощный игрок на моторынке, владеющий легендарными брендами KTM 🟠, Husqvarna ⚪ и GasGas 🔴 — анонсировала грядущие изменения в своей стратегии под кодовым названием «KTM Rescue».
🔧 Что за планы?
- 📢 Новые модели 2025 – ожидается обновление линеек эндуро🏁, супермото💨 и дорожных мотоциклов🛣️.
- ⚡ Ускорение в электробайках – развитие E-моделей, возможно, с новыми технологиями батарей и увеличенным запасом хода.
- 🌱 Экология + мощность – Pierer Mobility делает ставку на устойчивое развитие, не жертвуя динамикой и адреналином.
💡 Почему «Rescue»?
Название намекает на «спасение» позиций KTM в условиях растущей конкуренции и ужесточения экологических норм. Компания хочет укрепить лидерство в off-road сегменте и активнее продвигать уличные модели.
🔥 Чего ждать?
- KTM – возможно, новое поколение EXC/EX-F или даже хайповый E-адвенчур.
- Husqvarna – свежие Vitpilen/Svartpilen или прорыв в электромотоциклах.
- GasGas – усиление позиций в мотокроссе и супермото.
🔜 Будем следить за новостями! Готовьтесь к 2025 году — Pierer Mobility приготовил сюрпризы! 💥
#KTM#Husqvarna#GasGas#PiererMobility#Мото2025#Эндуро#Супермото#ЭлектроБайк#Мотокросс#НовыеМодели
💥 KTM 450 RALLY REPLICA: ГОТОВЬТЕСЬ К БЕЗДОРОЖЬЮ! БАЙК ДАНИЭЛЯ САНДЕРСА ВЫХОДИТ В ПРОДАЖУ!
✏️ Мотоцикл, на котором Даниэль Сандерс штурмует подиумы ралли-рейдов (включая Дакар!), теперь доступен и вам! KTM только что представила долгожданную 450 Rally Replica 2025 года. Это не просто мотоцикл — это чистокровная гоночная машина для бездорожья, адаптированная для эндуро-ралли.
🔥 Главные фишки байка:
1. Сердце чемпиона: Тот же мощный 450-кубовый SOHC двигатель, что и на заводской раллийной машине Сандерса. Облегченные компоненты (поршень, шатун), полый распредвал, титановые клапаны и их пружины — все для максимальной мощности и надежности в экстремальных условиях.
2. Заводская ходовая: Полностью карбоновая рама и задняя подвеска напрямую от гоночного прототипа! Легкость и прочность на новом уровне.
3. Высокотехнологичная подвеска: Передняя вилка WP XACT PRO 7548 и задний амортизатор WP XACT PRO 6748 с ручной настройкой сжатия/отбоя — полный контроль на любом рельефе.
4. Эксклюзивная комплектация:
* Заводские кевларовые бензобаки** (большой 31,5л + два малых по 7,5л) для огромного запаса хода.
* Карбоновые защитные элементы (крылья, защита руля, радиаторов).
* Легкосплавные колесные диски DID DirtStar с бескамерными покрышками Michelin Desert Race.
* Специальное сиденье Rally для комфорта на марафонских спецучастках.
* Датчик нейтрали (единственная "уступка" дорожной регистрации, легко снимается для гонок).
* Светодиодная фара (редкость для чисто раллийного байка!).
5. Внешний вид: Агрессивный дизайн в фирменных цветах KTM Factory Racing и личной графике Даниэля Сандерса. Выделяться будете не только скоростью!
💵 Цена и Доступность:
* Цена пока не объявлена (ожидайте премиальный сегмент).
* Производство ОЧЕНЬ ограничено (как и у предыдущих релизов).
* Старт продаж — июнь 2025 года.
#KTM#KTMRally#450Rally#ДаниэльСандерс#DakarRally#RallyReplica#Эндуро#РаллиРейд#Бездорожье#Мотоновинка2025#AdventureBike#HardEnduro#Мотоспорт#Экстрим