Установить свойства виджета в 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
Немцы в Китае проседают. Импорт авто из Германии в 2025-м упал на 40+% к 24-му. Немцам это неприятно, на автопром у них приходится 19% ВВП. С 2019 года в автопроме Германии сократили 112 тыс рабочих мест.
Попытки сделать "машину специально для китайцев" тоже не работают. AUDI (без колец) E5 Sportback 👆, созданная в партнерстве с SAIC, провалилась в продаже. Со старта прошло несколько месяцев, завод объявил скидку в 10+%.
Может и мы доживем до такого когда-нибудь.
Однозначно - 👍
Не доживем - 👎
#audi
Специально для ценителей немецкого автопрома - новое поступление в Major Expert. Дизельный AUDI Q8 2019 гв, с небольшим пробегом 111 тыс км. Без проблем по технике.
3-х литровый дизель, 249 лс и 600 Нм, полный привод, 8-и ступенчатая АКПП, 7 сек до сотни, при расходе меньше 10 л дизеля на 100 км. Обогрев лобового стекла и руля, вентиляция передних сидений, черный потолок, диски 20".
Цена - 5,9 млн руб.
Менеджер Кирилл @KirStar96
Кстати - с 1 апреля утиль снова вырастет.
#audi
AUDI A8 2013 года выпуска с пробегом 96 тыс км - уникальная возможность примерить на себя настоящий немецкий представительский класс. Нельзя пропустить.
Версия Long, полный привод Quattro, бензиновый 3-х литровый мотор на 290 сил. Разгон до сотни за 5.9 секунд. Окрасы - только бампера, хорошее техническое состояние.
Цена - 2,9 млн руб.
Менеджер Кирилл @KirStar96
#audi
Интересное про выбор самих китайцев. 9 января там вручали премию Автомобиль года в Китае и победил внезапно AUDI E5 Sportback, спроектированный "совместно" SAIC и Audi.
Полностью электрический, на китайской платформе, с китайской электроникой, он обошел всех чистокровных китайцев. У него не самые большие продажи, он не перевернул рынок и никаких супер новаций в нем нет.
Наверное так китайцы отметили момент, когда они впервые научили немцев делать машины, от Audi у него только название.
Немного странно - 🤔
Но можно понять - 🤝
#audi
Пушка-гонка AUDI A5, 3-х литровый дизель на 286 лс, 620 Нм и полный привод. Редкая машина. Момент доступен с 1500 оборотов, чтобы ехать быстро не нужно давить педаль и раскручивать мотор. 5 секунд до сотни, но по ощущениям еще быстрее.
Год выпуска - 2020-й, всего 100 тыс км пробега (для немецкого дизеля это пустяки). Один хозяин и идеальное состояние. Цена - 4,655 млн руб.
Подробности у Кирилла @KirStar96
#audi
AUDI готовит электрический ответ на Mercedes-Benz G-Class.
Машина будет стоять выше Q7 и Q8, в ее основе концепт Audi Q6 e-tron Offroad, с увеличенным клиренсом, усиленным кузовом, крупными шинами и портальными мостами.
Два электромотора мощностью более 500 л.с., система рекуперации и большой запас хода. В компании проект называют новой страницей истории.
Ждем — 👍
#audi
Мощный, четко управляемый AUDI Q8 — такое Китай построить не может.
В Major Expert на выбор 10 машин с 3-х литровыми моторами, бензиновыми и дизельными, 340 лс и 286 лс, 5,8-6,1 секунды до сотни.
Фирменный полный привод, спортивный кузов не успел примелькаться. Богатый интерьер и набор опций. Пробеги от 100 км до 136 тыс. км. Цена 5,49 - 14,7 млн руб.
Выбрать можно тут
Звоните +7 (495) 089-05-39
#audi
All new Audi A6 gets a long-wheelbase “🔤” version
📰 The long-wheelbase Audi A6L sedan has debuted in China. The model is produced by the FAW-Audi joint venture. The starting price is 323,000 yuan (about $45,000).
📏 The length increased by 210 mm to 5,142 mm, with extended rear doors and trunk. The wheelbase is 3,066 mm.
🐎 The engine lineup includes 2.0-liter turbocharged gasoline engines producing 204 and 272 hp, as well as hybrid versions: a 2.0-liter with 296 hp and a 3.0-liter with 390 hp. The sedan comes with a 7-speed dual-clutch transmission, front-wheel drive or all-wheel drive, and optional air suspension.
#Audi@Car_News
Новая Audi A6 получила удлинённую версию 🔤
📰 В Китае дебютировал удлинённый седан Audi A6L. Модель выпускается на совместном предприятии FAW-Audi. Стартовая цена – 323 000 юаней (около $45 000).
📏 Длина увеличилась на 210 мм и достигла 5142 мм, при этом были удлинены задние двери и багажник. Колёсная база составляет 3066 мм.
🐎 Линейка двигателей включает бензиновые турбомоторы объёмом 2,0 литра мощностью 204 и 272 л.с., а также гибридные версии: 2,0-литровую на 296 л.с. и 3,0-литровую на 390 л.с. Седан оснащается 7-ступенчатой роботизированной коробкой передач, передним или полным приводом, а также опциональной пневмоподвеской.
#Audi🚘Автоновости
Тоска автолюбителей по нормальным машинам порождает удивительные вещи. В прошлом году в Британии возник стартап Audacious Automotive который, что будет возрождать легендарную AUDI Quattro - с её раллийных побед началась современная история AUDI.
У исторической Quattro был 5-и цилиндровый мотор, сейчас британцы хотят ставить в рестомод V8 4,2.
Ни одной машины они пока не собрали, но СМИ уже пишут о появлении уникального продукта. Из готового - только фото недоваренного кузова. Цена вопроса кстати - 470 тыс долл и кроме денег нужно пригнать и донорскую Quattro и мотор V8.
Это смешно - 😁
Нет, это круто - 👍
#audi
AUDI прикончил А8 не навсегда. Решение о создании преемника принято и к концу десятилетия он появится.
В 2021 году AUDI показал концепт Grandsphere, который считался кандидатом на замену уходящему А8. Говорили что он "практически котов к производству". Тизеры дают нам понимание того, как скорее всего будет выглядеть новый А8.
Дизайн прекрасен, что будет с силовой установкой пока неизвестно.
Красивое - 👍
Уже не важно - 👎
#audi
📰The new Audi A6 has finally been unveiled
・The 2026 Audi A6 sedan enters a new generation with a smoother design and a tech-centric interior.
・Along with slippery new bodywork, the redesigned A6's dash is a haven for screens, and U.S. models have a 362-hp turbocharged V-6.
・While the European version goes on sale first, the U.S. lineup will arrive later this year and likely start at around $65,000.
@CarsNews
#Audi