Когда разрабатываете свой GUI с помощью PyQt для какого-либо софта бывает необходимо позаимствовать цвета из текущего стиля интерфейса. Например, чтобы правильно раскрасить свои виджеты, подогнав их по цвету. Ведь бывает, что ваш GUI используется в разных софтах. Причём некоторые со светлой темой а другие с тёмной.
По умолчанию стили наследуются, но если вы задаёте какую-либо раскраску для части виджета через свой styleSheet, то требуется ссылаться на цвета текущего стиля.
Как это сделать? Как получить нужный цвет из палитры имеющегося стиля? Это достаточно просто, нужно использовать класс QPalette и его роли.
Например, мне нужно достать цвет текста из одного виджета и применить его в другом как цвет фона (не важно зачем именно так, просто захотелось😊).
Получаем палитру виджета и сразу достаём нужный цвет, указав его роль.
from PySide2.QtGui import QPalette
color = main_window.palette().color(QPalette.Text)
теперь можем использовать этот цвет в стилях
my_widget.setStyleSheet(f'background-color: {color.name()};')
Готово, мы динамически переопределили дефолтный стиль используя текущий стиль окна!
На самом деле есть запись покороче, в одну строку и без лишних переменных. Не очень-то по правилам CSS, но Qt это понимает.
my_widget.setStyleSheet('background-color: palette(Text);')
Этот способ не подходит если вам нужно как-то модифицировать цвет перед применением в своих стилях. В этом случае потребуется первый способ.
Зато он прекрасно сработает в файле .qss, то есть не придётся в коде прописывать раскраску отдельных элементов через ссылки на палитру, всё красиво сохранится в отдельном файле .qss!
QListView#my_widget::item:selected {
background: palette(Midlight);
}
Про имеющиеся роли можно почитать здесь🌍
#qt#tricks
#Sinfonía50#MountSaintHelens#AlanHovhaness#JohnMarshall
Título:La “Sinfonía Nº 50” (Mount Saint Helens) Op.360
Autor:Alan Hovhaness
Movimientos:
🎵 Andante
🎵 Allegro, lleva el subtítulo Spirit Lake.
🎵 Adagio, allegro, se subtitula Volcano.
Interpretación:La Orquesta Sinfónica del Este de Washington
Director:
John Marshall
Fuente:🎼
@ClasicaAlAtardecer
#Sinfonía50#MountSaintHelens#AlanHovhaness#JohnMarshall
LA “SINFONÍA Nº 50” (MOUNT SAINT HELENS) OP.360
La “Sinfonía Nº 50” (Mount Saint Helens) Op.360 fue terminada el 24 de enero de 1982 en recuerdo del desastre de la erupción del volcán Mount Saint Helens. La montaña pertenece a la cordillera paralela a la costa del Pacífico, conocida como Cascade Range, sobre la cual hemos hablado en su anterior sinfonía 29, estando situada en el estado de Washington a 154 km al sur de Seattle. Era conocida por los indios con el nombre de Louwala-Clough, significando montaña humeante. A principios del año 1980 tenía 2950 metros de altura con una esbelta silueta simétrica que le valió ser llamado el Fujiyama de América.
La sinfonía de Hovhaness conmemora este hecho, pedida por el antiguo editor del compositor, CF Peters. La obra fue estrenada por la San Jose Symphony dirigida por George Cleve el 2 de marzo de 1984. La sinfonía logró un gran éxito, convirtiendo su movimiento final en una de las piezas más admiradas por el público en la década de los años 1980.
La pieza consta de tres movimientos
🎵Andante
🎵 Allegro, lleva el subtítulo Spirit Lake.
🎵 Adagio, allegro, se subtitula Volcano.
El primer movimiento, andante, empieza con un tema en la cuerda, que crece con la entrada de las trompas. Se desarrolla mediante amplias líneas melódicas. Sugiere la grandeza de la montaña, antes de la terrible erupción volcánica. Líricas melodías derivadas del tema principal son interpretadas por la madera. Una gran fuga es iniciada por la cuerda, como un canto de alabanza a la montaña.
El segundo movimiento, allegro, lleva el subtítulo Spirit Lake. Empieza con la intervención de la percusión en el estilo indio denominado jhala taranga, como se ha visto anteriormente en su sinfonía 39, para expresar las olas del agua. Líricas melodías interpretadas por el corno inglés y otros instrumentos del grupo de las maderas, intentan expresar la belleza natural que tenía el lago antes de su destrucción. En la parte final encontramos un dúo lírico interpretado por las flautas, acompañadas por acordes en pizzicato de la cuerda, terminando con la música acuática de la percusión.
El último movimiento, adagio, allegro, se subtitula Volcano. Representa el desastre que se produjo en la mañana del 18 de mayo. Empieza con un profundo himno interpretado por las trompas. Se escuchan misteriosos murmullos de la percusión. La flauta solista empieza unas frases como solista, que son brutalmente interrumpidas por una explosión de los tambores, que hará saltar de su butaca a más de un espectador. Empieza la música que representa la terrible erupción volcánica con violentas intervenciones del metal y la percusión. Impulsivos glissandos de los trombones y un caos de la cuerda anteceden a un triple canon formado por 20 voces utilizando el metal, madera y cuerda. La percusión pone su martilleante fondo marcando la destrucción que sigue y sigue.
Una sinfonía descriptiva, que después de expresar la belleza de la montaña y del lago destruido para siempre, nos relata la terrible erupción volcánica de un modo muy realista, terminando con un noble himno de acción de gracias.
Según las propias palabras del compositor, un himno de alabanza al poder juvenil y a la grandeza de la cordillera de las Cascades, a la energía volcánica renovando la vitalidad de nuestro hermoso planeta, la viva tierra, con el poder vivificante que construye montañas, elevándose majestuosamente, perforando las nubes del cielo.
@ClasicaAlAtardecer