@BlandoThemes · Post #59 · 30.01.2021 г., 11:00
#dark#pink#medusa 📍Apply Theme 🪶Blando Themes
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
Пребарај: #medusa
@BlandoThemes · Post #59 · 30.01.2021 г., 11:00
#dark#pink#medusa 📍Apply Theme 🪶Blando Themes
@Wallpaper_INT · Post #46031 · 23.03.2025 г., 07:30
#Medusa#Lines#Inscription#8K @Wallpaper_INTd
Hashtags
@magicgakuen · Post #5770 · 30.09.2025 г., 02:52
#Fate_stayNight#美杜莎#Medusa#Ai漫画二次元
@magicgakuen · Post #1190 · 09.06.2025 г., 08:15
#Fate_stayNight#美杜莎#Medusa#二次元
Hashtags
@dreamsgallerys · Post #1757 · 29.11.2023 г., 18:26
Dreams Gallery #арт#art#some#marvel#medusa#lockjaw#inhumans#uncannyknack
@venturevillagewall · Post #4324 · 06.03.2025 г., 19:00
$28M Raised for DoubleZero as Blockchain News DoubleZero secures $28M in funding from Multicoin Capital and others to enhance its network protocol. Tensorplex Labs also gains investment from YZi Labs to develop decentralized AI tools. Texas Senate passes Bitcoin Reserve Bill SB21. TON Core implements "Accelerator" update, boosting throughput to 100,000 TPS. World Liberty Financial partners with Sui, causing SUI price surge. Medusa Ransomware targets over 40 victims in 2025, demanding hefty ransoms. Kraken to begin next round of FTX creditor repayments on May 30. Seismic raises $7M led by a16z for a privacy blockchain. More on Bitcoin, blockchain, and crypto developments can be found at the relevant links. #Funding#Blockchain#Bitcoin#TexasSenate#Crypto#AI#Tensorplex#Web3#DoubleZero#SUI#Seismic#Ransomware#Medusa#A16z#DeFi#DecentralizedAI#TON#Kraken#VentureCapital
@githubtrending · Post #15100 · 29.08.2025 г., 11:30
#typescript#commerce#e_commerce#javascript#marketplace#marketplace_solution#medusa#medusajs#medusajs_v2#multi_vendor#multi_vendor_ecommerce#multivendor_ecommerce#nodejs#open_source#shopping_cart Mercur is a free, open-source platform that lets you build and run your own multi-vendor marketplace with full control over your data, infrastructure, and customizations. It combines the ease of SaaS with the freedom of open source, so you avoid transaction fees and vendor lock-in. Built on modern MedusaJS technology, Mercur supports both B2C and B2B marketplaces, offering customizable storefronts, admin and vendor panels, and integrations like Stripe for payments. This means you can create a unique, scalable marketplace tailored to your business needs without relying on costly or restrictive platforms. It requires some technical skill but gives you complete ownership and flexibility. https://github.com/mercurjs/mercur