Когда разрабатываете свой 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
#Spiderman🕸
El insider "MyTimeToShineHello" asegura que el plan de Sony es que el SpiderMan de Andrew SI aparezca en 'Spider-Man: Beyond The Spiderverse'
Hace un par de horas se habría filtrado una imagen donde Andrew Garfield presentaba un evento de Across The Spiderverse, así que todo tiene sentido.
@MARVELNOTICIAS📮
#Spiderman🕸
¡DEPENDE SU REGRESO!
En una reciente entrevista, Tom Holland habla sobre su regreso como Spider-Man, declarando que volvería si y solo sí hubiera una buena historia que contar.
“Todo lo que puedo decir es que hemos estado hablando sobre cómo podría verse un cuarto proyecto de mi personaje. Si podemos o no encontrar una manera de hacer justicia al personaje eso es otra cosa".
@MARVELNOTICIAS📮
#Spiderman🕸
Según reporta nuestro querido DanielRPK, Marvel Studios y Sony pictures se andan desgarrando las medias por Spider-Man
Según dice, Sony quiere que Spider-Man 4 tenga toques multiversales para tener referencias y cameos al universo de Sony, y ver a Venom, Morbius y demás personajes, pero Marvel Studios quiere algo más callejero, donde veamos a un Spidey sin tanto desmadre nivel vengadores
¿Quien ganará?
@MARVELNOTICIAS📮
#Spiderman🕸
Según el insider Daniel Richtman, Sony prepara nuevamente una película de "Los 6 Siniestros". Se describe como una cinta tipo Avengers que busca reunir a los personajes principales de sus spin-off de Spiderman.
@MARVELNOTICIAS📮
#Spiderman🕸
Daniel Richtman indica que el más reciente guion de Spiderman 4 tiene un elemento multiversal ya que Sony insiste en que en el filme aparezca un personaje de su universo spin-off. No se sabe aún qué personaje será, pero el cameo sería algo tipo Venom en Spiderman No Way Home.
@MARVELNOTICIAS📮