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

Резултати

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

Пребарај: #zubinmehta

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

@ClasicaAlAtardecer · Post #7535 · 15.05.2026 г., 18:30

​​​​#Sinfonía1#Paine#ZubinMehta LA “SINFONÍA Nº 1 EN DO MENOR ” Op.23 La “Sinfonía Nº 1 en do menor” Op.23, fue empezada en 1872 y terminada en 1875. Boston, 26 de enero de 1876. Bajo la dirección de Theodore Thomas va a tener lugar el estreno de la primera sinfonía de John Knowles Paine. Se trata de la primera sinfonía escrita por un americano que puede estar a la altura de cualquiera de las sinfonías europeas. Esta obra se puede considerar realmente como el principio de la tradición sinfónica de los Estados Unidos. Beethoven era también en América el punto con el que se comparaba la música sinfónica. Por ello no es de extrañar que Paine hiciera un homenaje al maestro, especialmente a su Quinta Sinfonía, cuyos ritmos característicos incorpora en en su primer movimiento. Esta pieza cuenta con 4 movimiento: 🎵Allegro con brio 🎵 Allegro vivace 🎵 Adagio 🎵 Allegro vivace El primer movimiento un allegro con brio, un movimiento de gran energía construido en forma sonata. Uno de los temas es característico de Beethoven, empleando similares construcciones durante la sección de desarrollo. El segundo movimiento allegro vivace corresponde al scherzo de la sinfonía. Un movimiento vigoroso que contrasta con el melodismo de su trio. Luego se repite el scherzo terminando con una breve coda. El tercer movimiento es un adagiom construido en forma de lied empieza con una romántica melodía en la cuerda. La parte central es más agitada, pero pronto regresa el cálido lirismo del tema principal. El movimiento finaliza dulcemente con las últimas notas de la melodía. Termina con un allegro vivace lleno de fuerza y vigor. El tema principal, que es de gran nobleza, contrasta con el melodismo del segundo. Una obra que sigue la escuela de Beethoven y Mendelssohn. @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5268 · 20.10.2021 г., 17:00

#Sinfonía1#Paine#ZubinMehta Título:La “Sinfonía Nº 1 en do menor” Op.23 Autor:John Knowles Paine Movimientos: 🎵 00:00 Allegro con brio 🎵 11:04 Allegro vivace 🎵 18:48 Adagio 🎵 28:48 Allegro vivace Interpretación: Orquesta Sinfónica de Nueva York Director: Zubin Mehta Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5267 · 20.10.2021 г., 17:00

​​#Sinfonía1#Paine#ZubinMehta LA “SINFONÍA Nº 1 EN DO MENOR ” Op.23 La “Sinfonía Nº 1 en do menor” Op.23, fue empezada en 1872 y terminada en 1875. Boston, 26 de enero de 1876. Bajo la dirección de Theodore Thomas va a tener lugar el estreno de la primera sinfonía de John Knowles Paine. Se trata de la primera sinfonía escrita por un americano que puede estar a la altura de cualquiera de las sinfonías europeas. Esta obra se puede considerar realmente como el principio de la tradición sinfónica de los Estados Unidos. Beethoven era también en América el punto con el que se comparaba la música sinfónica. Por ello no es de extrañar que Paine hiciera un homenaje al maestro, especialmente a su Quinta Sinfonía, cuyos ritmos característicos incorpora en en su primer movimiento. Esta pieza cuenta con 4 movimiento: 🎵Allegro con brio 🎵 Allegro vivace 🎵 Adagio 🎵 Allegro vivace El primer movimiento un allegro con brio, un movimiento de gran energía construido en forma sonata. Uno de los temas es característico de Beethoven, empleando similares construcciones durante la sección de desarrollo. El segundo movimiento allegro vivace corresponde al scherzo de la sinfonía. Un movimiento vigoroso que contrasta con el melodismo de su trio. Luego se repite el scherzo terminando con una breve coda. El tercer movimiento es un adagiom construido en forma de lied empieza con una romántica melodía en la cuerda. La parte central es más agitada, pero pronto regresa el cálido lirismo del tema principal. El movimiento finaliza dulcemente con las últimas notas de la melodía. Termina con un allegro vivace lleno de fuerza y vigor. El tema principal, que es de gran nobleza, contrasta con el melodismo del segundo. Una obra que sigue la escuela de Beethoven y Mendelssohn. @ClasicaAlAtardecer