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

Резултати

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

Пребарај: #sergiucomissiona

当前筛选 #sergiucomissiona清除筛选
🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #6386 · 07.10.2023 г., 15:00

#Sinfonía2#Mendelssohn#SergiuComissiona Título:La Sinfonía n.º 2 en Si Bemol Mayor, Op. 52 Autor:Felix Mendelssohn Movimientos: 🎵I. Maestoso con moto – Allegro, en si bemol mayor 4/4 🎵 II. Allegretto un poco agitato, en sol menor 6/8 🎵 III. Adagio religioso, en re mayor 2/4 Interpretación: Orquesta Sinfónica y Coro RTVE Director: Sergiu Comissiona Fuente:🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #6385 · 07.10.2023 г., 15:00

​​#Sinfonía2#Mendelssohn#SergiuComissiona LA SINFONÍA N.º 2 EN SI BEMOL MAYOR, Op. 52 La Sinfonía n.º 2 en si bemol mayor, Op. 52,, también conocida como "Lobgesang" que significa "Canto de alabanza" o "Himno de alabanza", es una sinfonía coral escrita por Felix Mendelssohn en 1840. Fue concebida para conmemorar el cuarto centenario de la invención de la imprenta por Johannes Gutenberg. El estreno se celebró el 25 de junio de 1840 en la Iglesia de Santo Tomás de Leipzig, con voces solistas, coro y orquesta dirigidos por el propio compositor. Este concierto incluyó además del estreno de esta sinfonía, la Jubel-Ouvertüre de Carl Maria von Weber y el Te Deum "Dettingen" de Georg Friedrich Händel. La primera edición fue llevada a cabo por la editorial Breitkopf & Härtel en 1841 en Leipzig. Se publicó como Sinfonía n.º, y la dedicatoria que figura en la partitura es para el rey Federico Augusto II de Sajonia. La pieza consta de una parte sinfónica con tres movimientos puramente orquestales seguidos por una cantata con otros nueve para solistas, coro, órgano y orquesta. 🎵I. Maestoso con moto – Allegro, en si bemol mayor 4/4 🎵 II. Allegretto un poco agitato, en sol menor 6/8 🎵 III. Adagio religioso, en re mayor 2/4 Todos los movimientos comparten material. El tema principal del movimiento inicial aparece en el trío del scherzo subsiguiente, y está presente en las secciones primera y última del Finale coral. Maestoso con moto – Allegro El primer movimiento, Maestoso con moto - Allegro, está escrito en la tonalidad de si bemol mayor y en compás de 4/4. Se abre impregnado de un aire ceremonial con un tema audaz y majestuoso entonado por los trombones, con frases de respuesta por parte de toda la orquesta. Mendelssohn ya había empleado este tema tres años antes en una composición del Salmo 42 y tiene una distinguida historia en el canon contrapuntístico. Otros compositores ya habían utilizado versiones de este tema, como Bach o Mozart en el Finale de su Sinfonía Júpiter. Este primer tema, con saltos y descensos, recibe un tratamiento de desarrollo durante la transición al segundo tema, que es muy similar a un tema del primer movimiento de la Sonata en si bemol mayor, Op. 22 de Beethoven. El tema con ritmo con puntillo de la introducción aparece en la sección de desarrollo, con un carácter completamente distinto. Allegretto un poco agitato El segundo movimiento, Allegretto un poco agitato, está en sol menor y en compás de 6/8. Es una pieza en forma de scherzo, con un canto inquieto y cadencioso. La atmósfera aquí no es tan juguetona como melancólica en las secciones exteriores, y francamente seria en la central, con su melodíacoral entonada con severidad. El tema principal evoca la canción popular y con el balanceo oscilante del 6/8 se asemeja a una de las "Canciones de Gondolero" de sus Lieder ohne Worte. Una refrescante sección en la mayor presenta una conversación entre las cuerdas y los vientos. Adagio religioso El tercer movimiento, Adagio religioso, está en re mayor y en compás de 2/4. Es un conjunto de variaciones sobre una melodía similar a una canción. Parece que el compositor intenta emular el uso ocasional que hace Beethoven de acordes simples en bloque para producir un efecto majestuoso. No obstante, su concepción de la técnica hace que el tema principal se estanque. Recuerda al Adagio de su Sinfonía escocesa debido al tratamiento que Mendelssohn da a la orquesta. La singularidad de esta obra es que fue compuesta para una ocasión especial, a saber, las celebraciones en Leipzig del cuarto centenario de la invención de la imprenta con tipos móviles por Johannes Gutenberg. Tras su estreno, la Sinfonía "Lobgesang" se hizo muy popular. Hoy en día se interpreta raramente. Una forma tan híbrida no siempre ha granjeado el favor de la crítica, pero ésta fue una obra popular en el siglo XIX y, como siempre ocurre con Mendelssohn, está llena de música de gran calidad y originalidad @ClasicaAlAtardecer