TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 2 слични објави

Пребарај: #bovensiepen

当前筛选 #bovensiepen清除筛选
Car News

@car_news · Post #1291 · 26.05.2025 г., 09:19

🆕A secret BMW hides under this new coupe by Alpina founders ℹ️ The Bovensiepen family, which owns Germany's Alpina, has begun preparations for a business transformation. Early next year, the rights to the brand will be transferred to the BMW Group, and the niche carmaker will continue to operate under the new Bovensiepen brand. The sale of the Alpina brand (but not the company itself) to the BMW group was announced back in March 2022, but officially the change of ownership will take place only on January 1, 2026. Until then, the Bovensiepens have the right to produce Alpina cars on the basis of BMW. ☔️ According to Alpina tradition, the BMW 4 Series Convertible was taken as the basis for the project. However, it was transformed into a coupe with an almost completely new body. The interior architecture has not changed fundamentally. 🐎 Under the hood there is the M4’s 3.0-liter turbocharged inline-six engine with an output of 611 hp (700 Nm). Bovensiepen GT manages a 0–100 km/h sprint in just 3.3 seconds and reaches a top speed “beyond 300 km/h”, according to its makers. However, they have not yet said anything about the gearbox or the type of drive. 💷 Prices and planned production volumes will be revealed in the IV quarter of 2025. The start of deliveries is scheduled for the end of the II quarter of 2026. #BMW#tuning#Alpina#Bovensiepen@Car_News

Автоновости

@avtonovosti · Post #1222 · 26.05.2025 г., 10:14

🆕 Новый купе от основателей Alpina ℹ️ Семья Бовенсипен (Bovensiepen), владеющая немецкой компанией Alpina, начала подготовку к трансформации бизнеса. В начале следующего года права на бренд будут переданы BMW Group, а нишевый автопроизводитель продолжит работать под новым брендом Bovensiepen. О продаже бренда Alpina (но не самой компании) концерну BMW было объявлено ещё в марте 2022 года, но официально смена владельца произойдет только 1 января 2026 года. До этого времени у Bovensiepens есть право выпускать автомобили Alpina на базе BMW. ☔️ По традиции Alpina за основу проекта был взят кабриолет BMW 4 Series. Однако он был преобразован в купе с практически полностью новым кузовом. Архитектура интерьера принципиально не изменилась. 🐎 Под капотом – 3,0-литровый рядный двигатель M4 с турбонаддувом мощностью 611 л.с. (700 Нм). Bovensiepen разгоняется от 0 до 100 км/ч всего за 3,3 секунды и развивает максимальную скорость «свыше 300 км/ч», как утверждают производители. Однако они пока ничего не говорят о коробке передач и типе привода. 💷 Цены и планируемые объёмы производства будут раскрыты в IV квартале 2025 года. Начало поставок запланировано на конец II квартала 2026 года. #BMW#тюнинг#Alpina#Bovensiepen@avtoNovosti