Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
🫧Армия США расследует полёты «Апачей» над домом Кид Рока
📌Армия США начала расследование после того, как боевые вертолёты AH-64D Apache из 101-й бригады были сняты на видео кружащими над домом музыканта Кид Рока в Нэшвилле и летающими на низкой высоте возле протестующих в Кларксвилле. По документам вертолёты должны были выполнять учебный полёт
🔵Представитель армии заявил, что это не было санкционированным мероприятием и вертолёты не назначались для наблюдения за демонстрациями. Проводится административная проверка соблюдения правил полётов и требований воздушного пространства
⬅️Обещают принять меры в случае выявления нарушений
Лёгкое небо
#aviation#news#США#Apache
✅ Завтра
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/h2Yvvo
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/h2Yvvo
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/AgNpma
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/AgNpma
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
✅ ANDROID MEETUP
📅 29 марта / 19:00–21:00 (время ЕКБ, МСК+2) / Екатеринбург, пер. Химков, 3, коворкинг Соль
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/TyRRL6
Приглашаем вас к нам на митап, чтобы пообщаться, поделиться опытом и рассказать с какими задачами мы сталкиваемся, какие технологии используем и ,конечно, перетереть косточки Kotlin
🔗 Программа: https://goo.gl/TyRRL6
#android#Kotlin#Екатеринбург
✅ Epic Growth Conference
📅 29 марта / 14:00–22:00 (время МСК) / Москва, ул. 3-я Ямского Поля, 15
💵 Платно
📝 Регистрация тут: https://goo.gl/WEVQ6a
29 марта в Москве Mobio и Getloyal при поддержке партнеров организуют конференцию по продуктовому маркетингу Epic Growth Conference.
🔗 Программа: https://goo.gl/WEVQ6a
#marketing#productivity#маркетинг#продукт#Москва
✅ Apache® Ignite™ Meetup #1
📅 29 марта / 19:00–22:00 (время МСК) / Санкт-Петербург, Невский проспект 35
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/xsnDmZ
Встреча для архитекторов и разработчиков, которые интересуются In-Memory решениями, в том числе open-source платформой Apache Ignite.
🔗 Программа: https://goo.gl/xsnDmZ
#Apache#backend#СанктПетербург