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

Резултати

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

Пребарај: #hennessey

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

@car_news · Post #1486 · 18.08.2025 г., 18:31

📰Hennessey unveils 1-of-1 manual Venom F5 hypercar ℹ️ This one-of-a-kind car is based on the Hennessey F5 line (which includes a coupe and a roadster), and its name contains an abbreviation in honor of its customer, American collector Louis Flory. 🐎 The roadster combines the features of the F5 track modification – Revolution – with the Evolution version. The latter features a 6.6-liter V8 Fury with two turbochargers, boosted to 2031 hp when fueled with E85 (the standard version of the F5 produces 1842 hp). At the same time, the Venom F5 LF was ordered with a six-speed manual transmission, rather than the robotic gearbox also used for the F5. In addition, the car has a new carbon fiber monocoque, adaptive suspension, and modified aerodynamic bodywork. The unique look is further enhanced by special trim and a color palette in the interior. #Hennessey#hypercar@Car_News

Автоновости

@avtonovosti · Post #1400 · 18.08.2025 г., 19:10

📰 Hennessey представил единственный в своем роде гиперкар Venom F5 на механике ℹ️ Этот уникальный автомобиль создан на базе линейки Hennessey F5 (в которую входят купе и родстер), а его название содержит аббревиатуру в честь его заказчика, американского коллекционера Луиса Флори. 🐎 Родстер сочетает в себе особенности трековой модификации F5 – Revolution – с версией Evolution. Последняя оснащена 6,6-литровым V8 Fury с двумя турбонагнетателями, мощность которого при использовании топлива E85 увеличивается до 2031 л.с. (стандартная версия F5 развивает 1842 л.с.). В то же время Venom F5 LF был заказан с шестиступенчатой механической коробкой передач, а не с роботизированной коробкой, которая также используется в F5. Кроме того, автомобиль имеет новый монокок из углеродного волокна, адаптивную подвеску и модифицированный аэродинамический кузов. Уникальный внешний вид дополнительно подчеркивается специальной отделкой и цветовой палитрой интерьера. #Hennessey#гиперкар@avtoNovosti

Auto Life

@revheadcrypto · Post #479 · 12.09.2024 г., 09:22

🚀Introducing the World's Most Powerful Supercar with a Manual Transmission!🏎️💨 The renowned atelier Hennessey has unveiled the new Venom F5-M roadster! 🌟 This stunning version retains the same 1842-hp V8 engine, but swaps the seven-speed automatic for a thrilling six-speed manual gearbox! 🕹️✨ The Hennessey Venom F5-M is set to be the most powerful production supercar with three pedals, starting at an incredible $2.65 million! 💰🔥 Only 12 units of the Venom F5-M will be produced, part of the exclusive batch promised in 2022. The total production of this roadster will not exceed 30 cars! 🛠️🏁 Get ready for an unparalleled driving experience! #Hennessey#VenomF5M#Supercar#ManualTransmission#PowerfulPerformance#CarEnthusiasts#LuxuryCars#LimitedEdition#Auto🚗💥