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

Резултати

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

Пребарај: #axelotlogisticsgap

当前筛选 #axelotlogisticsgap清除筛选

Продолжаем наши традиционные встречи в рамках #AXELOTLOGISTICSGAP 28 сентября в 16:00 мы проведем еще один нетворкинг в дружеской обстановке в славном городе Тбилиси🇬🇪 Ждем всех в ресторане отеля Ramada by Wyndham☕️ Подробности читайте здесь.

🥳Мы продолжаем международные нетворкинги #AXELOTLOGISTICSGAP На очереди гостеприимная Армения🇦🇲 Дата встречи - 26 сентября в 16:00 – Ереван🗓 Место встречи - открытая веранда с видом на горы в отеле Konyak ⛰ Подробнее: https://t.me/axelot_mezhdunarodnyj/34

Уххх, а до старта #AXELOTLOGISTICSGAP в Ереване и Тбилиси осталось совсем немного времени😎 Уже на следующей неделе произойдут два грандиозных события в мире логистики💪 А пока любуемся видео от Волгая Андрея😎 И если не успели ещё записаться, то бегом к Жданову Юрию и Волгаю Андрею

Так так так...Что тут у нас? 🤔 А это очередной #AXELOTLOGISTICSGAP, но в этот раз в Грузии 🇬🇪 Вау, уверен, что это будет полено, интересно и самое главное будет много представителей из разных сфер деловой Грузии 😎 Не забываем читать статью и помечать галочкой день в календаре 🗓 Подробности по ссылке. А если остались ещё вопросы, то задавайте их Жданову Юрию и Андрею Волгаю Нахвамдис!

4 апреля в Ташкенте собрали наших друзей и единомышленников в рамках #AXELOTLOGISTICSGAP. Все участники – из сферы торговли и логистики, кто-то уже работал с AXELOT, а кто-то только интересуется автоматизацией логистики. В дружеской обстановке удалось обсудить практически все вопросы от строительства новых складов до оптимизации и автоматизации цепей поставок. Было круто! Спасибо всем участникам! Следующий #AXELOTLOGISTICSGAP пройдёт в Алматы!

Логистический нетворкинг или #AXELOTLOGISTICSGAP Друзья, всем привет! Зачастую многие ассоциируют нетворкинг с протекционизмом и кумовством. Мы, в AXELOT, решили поставить в этом процессе жирную точку. Начиная с апреля 2023 года раз в месяц, мы будем проводить #AXELOTLOGISTICSGAP. Цели себе, как и всегда, мы ставим амбициозные, а именно создать «клуб логистических единомышленников» из людей, которым не всё равно, куда и как движется их родная компания/отрасль/страна. Мы считаем, что подобный узкоспециализированный профессиональный нетворкинг позволит устанавливать связи с единомышленниками, обмениваться идеями и опытом, что, в свою очередь, позволит повысить ценность логистики, применяемость новых технологий и лайфхаков. Первый #AXELOTLOGISTICSGAP пройдет в Ташкенте на первой неделе апреля. Эта встреча предоставит возможность экспертам в области логистики платформу для общения, обмена опытом и идеями. Встреча пройдет в теплой дружеской обстановке, поэтому площадкой выбран ресторан «The Choyxona».

Следующая неделя обещает быть жаркой🔥🔥🔥: 21 мая в 14:00 наши замечательные коллеги Дмитрий и Яна проведут вебинар по работе LOGAREON WMS с «ОБЯЗАТЕЛЬНОЙ МАРКИРОВКОЙ». Тема трендовая, хайповая, поэтому ждем всех на вебинаре/ 22 мая посещаем новый склад WMC Uzbekistan, Первого 3PL провайдера в Узбекистане, работающего на лучшей в мире WMS от LOGAREON. 22 же мая вечером, после захода солнца, совместно с нашими партнерами проводим традиционный #AXELOTLOGISTICSGAP во всеми полюбившейся The Choyxona 23 мая с 09.30 до 17.30 выступаем на Логистике Будущего в Radisson blu 4, просп. Амира Темура, 88, Grand Ball Room, где расскажем о текущем положении на рынке WMS, о перспективах и значимых трендах. Всем быть! До встречи!

ПретходнаСтраница 1 од 3Следна