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

Резултати

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

Пребарај: #reuse

当前筛选 #reuse清除筛选
Green Green | Канал

@greengreen_ch · Post #415 · 16.01.2023 г., 15:27

🔠 🔠 🔠 🔠 🔠 🔠В новом году мы с вами еще не виделись, давайте исправлять! У нас есть для вас 3 квеста! 1 - дожить до субботы, 2 и 3 - поволонтёрить на полезных мероприятиях С утра в субботу предлагаем поучаствовать в подготовке компостных ям-траншей и прилегающей территории к последующему приему органики в Ботсаду, а днём в Ковчеге поиграть в сортировку крышечек по цветам на скорость!* И там, и там пригодится помощь 7-10 волонтёров ♻ * Мы вместе собрали очень много крышечек от пластиковых бутылоки теперь хотим сделать из этих крышечек красивую мозаику (#reuse) в одной из армянских школ. Дизайн мозаики разработает известный художник Арман Степанян. Для реализации нам необходимо рассортировать собранные крышечки по цвету Ждем вас 21 января на одном или сразу двух мероприятиях! 🕚 11:00 📍 Ботанический сад, центральный вход, ул. Грачья Ачаряна 🛠 задачи: обрезка кустарников, перенос камней, уборка мусора 🕒 15:00 📍 ресурсный центр Ковчега, ул. Павстоса Бузанда 1/3 🛠 задача: сортировка пластиковых крышечек по цветам Также просимподдержать нас, отправив пожертвование на комфортную сумму сюда ➡️ ➡️ ➡️ 5471280030147752 (Ардшинбанк) IVAN DIVILKOVSKIY 2200700168433976 (Тинькофф)

Hashtags

NEA Singapore

@NEASingapore · Post #711 · 07.12.2023 г., 01:01

As we prepare for Christmas, let's transform and reuse our old decor for a fresh festive look. Instead of buying new decorations, wrapping paper and cards, we can: 🎄 Paint a fresh coat on old ornaments 🎁 Reuse empty food jars or cookie tin cans as gift boxes 📱 Swap Christmas paper cards for heartfelt e-greetings How are you getting creative with upcycling and recycling this Christmas? Share your tips in the comments below. #TowardsZeroWaste#3Rs#Reduce#Reuse#Recycle

NEA Singapore

@NEASingapore · Post #716 · 08.12.2023 г., 04:03

Our 2023 Wrapped is in! 'Bringing Your Reusable Bag for Shopping' is the chart-topping single we all need. From reusable essentials to recycling mastery, we've built an eco-habit playlist that's pure chart green. Top tracks include 'Reusable Bag Groove', 'Recycling Rhythm', and 'Energy-Saving Melody'. Fellow eco-warriors, let’s keep this #SustainableSG chart-topper habit going strong! #TowardsZeroWaste#BYOB#BringYourOwnBag#BringYourOwn#BYO#3Rs#Reduce#Reuse#Recycle#EnergyEfficiency

@Veronica_ecovibes

@veronica_ecovibes · Post #10 · 05.04.2022 г., 13:39

Чаты в телеграме: ⠀ 🌱 «Своп канал Москва» (информация о свопах и фримаркетах) — https://t.me/swapMoscow 🌱 «Медшеринг Москва и МО» (лекарства) — https://t.me/medicinshering 🌱 «Строй Реюз» (строительные материалы) — https://t.me/stroyreuse 🌱 «Гопсвоп чат», «Реюз» (одежда, игрушки, книги, мебель и другое) —https://t.me/gopswap_chat, https://t.me/findandreusechat 🌱 «Фудшеринг Москва все районы» (еда) — https://t.me/sharefoodinmoscow 🌱 «Обмен растениями в Москве и МО» (растения) — https://t.me/rastenia_msk 🍀🍀🍀 ⠀#foodsharing#sharing#sobirator#собиратор#собиратормосква#своп#swap#свопмосква#обмен#медшеринг#шеринг#отдамдаром#отдамдароммосква#reuse#реюз#зоошеринг#zoosharing

@Veronica_ecovibes

@veronica_ecovibes · Post #9 · 05.04.2022 г., 13:37

Как найти Своп и Шеринг группы: ⠀ Группы во ВКонтакте: ⠀ 🍀 «Отдам даром Москва» (обувь, одежда, книги, косметика) — https://vk.com/theap 🍀 «Аптекашеринг Москва» (лекарства) — https://vk.com/aptekasharingmsk 🍀 «Стройшеринг Москва» (строительные материалы) — https://vk.com/stroisharing_msk 🍀 «Фудшеринг» (еда) — https://vk.com/sharingfood 🍀 «Зоошеринг» (вещи для животных) — https://vk.com/zoosharing 🍀 «Плантшеринг» (растения) — https://vk.com/cvetydarom 🍀 «Крафтшеринг Москва» (материалы для творчества и рукоделия) —https://vk.com/craftsharing_moscow ⠀ 🍀🍀🍀 #foodsharing#sharing#sobirator#собиратор#собиратормосква#своп#swap#свопмосква#обмен#медшеринг#шеринг#отдамдаром#отдамдароммосква#reuse#реюз#зоошеринг#zoosharing

@Veronica_ecovibes

@veronica_ecovibes · Post #8 · 05.04.2022 г., 13:33

Что это такое своп и шеринг группы («swap» и “sharing” в переводе с англ. “обмен”) ? ⠀ 🍀это обмен ненужными, но хорошими вещами. Свопы проходят в виде фримаркета: вы приносите ненужную вам вещь, а забирайте нужную или вовсе ничего не забираете. Главный принцип свопа — никаких денег #nomoney 🍀 можно делиться информацией о ненужных вещах и договариваться об обмене в шеринг-группах или чатах в соцсетях. ⠀ ⠀ 🍀🍀🍀 #foodsharing#sharing#sobirator#собиратор#собиратормосква#своп#swap#свопмосква#обмен#медшеринг#шеринг#отдамдаром#отдамдароммосква#reuse#реюз#зоошеринг#zoosharing