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 слични објави

Пребарај: #conceptcar

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

@car_news · Post #71 · 27.05.2024 г., 14:00

🚘 Skytop with "the most powerful V8 engine ever" unveiled The latest BMW Skytop has made its debut at the Villa d'Este 2024 classic car show on the shores of Lake Como. The two-seater car has a rigid roof that can be removed manually and the rear window can be raised and lowered with a button. "Chrome shadow effect" is designed specifically for the Skytop. According to the manufacturer, the car has been given the "most powerful V8 engine", which is supposedly the same 4.4-litre 625bhp engine used in the M8 Competition. In creating the Skytop, BMW decided to pay homage to the brand's classic models such as the Z8 and 503. Although the car is only a concept car at the moment, BMW has not ruled out the possibility of a limited production run. @CarsNews #BMW#conceptcar#roadster

Auto Life

@revheadcrypto · Post #154 · 23.07.2024 г., 15:33

✨ Presenting the Cadillac Sollei convertible with a stunning mushroom-based interior! 🍄 This concept, based on the production platform of the electric Celestiq, features a unique body design and interior finish using five different wood types and the bio-material Fine Mycelium, including mushroom mycelium. The Sollei showcases the revival of the classic Manila Cream color from the late 1950s. While specific technical details are yet to be revealed, the production Celestiq is equipped with electric motors producing around 600 horsepower. #Cadillac#Sollei#Celestiq#ElectricCar#Auto#ConceptCar🚗💫

Auto Life

@revheadcrypto · Post #582 · 16.10.2024 г., 07:18

🚗✨ Introducing the Alpenglow Hy6 by Alpine! 🌟 This stunning concept car is the evolution of the Alpenglow Hy4, showcasing a powerful V6 engine that delivers an impressive 730 hp and 770 Nm of torque—all powered by hydrogen! 💨🔋 Built on a lightweight carbon LMP3 chassis, the Hy6 promises thrilling performance and cutting-edge technology. Production is on the horizon, with the possibility of an all-electric powertrain on the assembly line! ⚡️🌍 #Alpine#AlpenglowHy6#HydrogenPower#ElectricFuture#CarEnthusiast#ConceptCar#Innovation#Auto🚀