Регулярно приходится писать и ревьюить код, где используется 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
Various Artists — Music of Bhutan (Folkways Records, 1978)
#traditional#field_recording#chiwang#dramyin#yangqin#Bhutan
Из-за географической изолированности Восточных Гималаев в Бутане очень медленно проходит процесс модернизации. Помимо этого жители Бутана очень бережно относятся к сохранению своего наследия. Правительство Бутана открыло границы страны для туристов только в 1974 году, а народ Бутана сохранил гималайский буддизм почти в его первозданном виде.
Доктор Иоганн С. Шушкевич — антрополог и один из первых путешественников, открывших для себя Бутан. Он создал Music of Bhutan в 1978 году, когда ученые только начали изучать бутанскую музыку, преимущественно местную буддийскую литургию. В свою очередь сборник полевых записей Music of Bhutan наглядно демонстрирует, что до конца 70-х годов XX века жителям Бутана вполне успешно удавалось сохранять не только духовную, но и народную музыкальную традицию.
🔗Spotify | AppleMusic | Telegram
Bhutan Balladeers — Your Face Is Like the Moon, Your Eyes Are Stars (Glitterbeat Records, 2024)
#traditional#field_recording#zhungdra#ngalop#choekey#drumnyen#chiwang#yangchen#flute#Bhutan
Альбом Bhutan Balladeers посвящён музыке «жунгдра» (གཞུང་སྒྲ་), традиции Бутана, уходящей корнями в XVII век. Продюсером выступил лауреат премии «Грэмми» Ян Бреннан, известный по работе с Tinariwen,Ustad Saami и Zomba Prison Project.
Жунгдра — эндемичный бутанский музыкальный стиль, связанный с народной традицией областей Паро и Пунакха, исторического центра культуры народа нгалоп. Стиль отличается протяжными вокальными партиями, которые украшаются сложными мелодическими вариациями и микротональными переходами, медленно развивающими относительно простую инструментальную основу. Такой подход требует высокой подготовки исполнителей, что сделало жунгдра менее популярным по сравнению с ригсаром — стилем современной бутанской поп-музыки, основанным на использовании электронных синтезаторов.
Помимо высокого мастерства, требуемого для исполнения стиля жунгдра, дополнительной сложностью является использование языка чёке, происходящего от санскрита и известного как «язык дхармы». Этот древний язык сегодня понятен в основном буддийским монахам, что делает его трудным для восприятия большинства бутанцев.
Запись альбома проходила на лесной вершине недалеко от Тхимпху, столицы Бутана, с участием 16 певцов и почти без инструменталистов. Тем не менее, в записи нашли своё место некоторые традиционные бутанские инструменты: друмньен (трёхструнная лютня с двойными струнами), чхиванг (двухструнная скрипка), цимбалы и деревянные флейты. Всего было записано 37 песен, но на пластинку попало 11 из них.
Уникальной особенностью записи стало взаимодействие с местной природой: вороны, будто откликаясь на исполнение, «комментировали» выступления музыкантов своими криками. Одним из самых запоминающихся моментов записи стало соло старейшей певицы Пемо Чоден, которая исполнила редкую композицию (предположительно, седьмой трек), неизвестную даже другим участникам записи.
🔗AppleMusic | Spotify | Deezer | TIDAL | Bandcamp