Когда разрабатываете свой 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
Informa nuestra periodista Mavel Ponce de León que, en #Holguín, la sucursal de #Palmares ofertará cenas para consumir en el lugar y llevar, por el #FinDeAño desde sus instituciones gastronómicas.
Entre las opciones que puede disfrutarse en casa se incluyen la carne de cerdo (sin cocción), frutas, vegetales y cerveza.
Mientras que, el Salón 1720 propone tables para dos personas, a base de pollo, langosta, cerdo; con dos bebidas a escoger, viandas, arroz, café... por un costo entre los dos mil y tres mil pesos la reservación.
En el restaurante El Ancla, en Guardalavaca, ofertarán mariscos y pescados, como es tradición de este.
A través de las agencias de viaje, entre las que se encuentra Havanatur, se puede reservar para las cenas.
El pago se efectúa en moneda nacional, según precisiones a Radio Holguín Gretel Ramírez, directora de Operaciones de Palmares.
#Cuba
Lanzan desde Holguín 14 edición del Festival Internacional Varadero Gourmet
La décimo cuarta edición del Festival Internacional Varadero Gourmet sesionará entre los días 11 y 13 de septiembre próximos en el mayor balneario del país.
La cadena extrahotelera #Palmares convocó a una conferencia de prensa para ofrecer detalles de su participación en el evento,
dedicado a la evolución y sostenibilidad de la cocina tradicional cubana.
Conferencias, exposiciones, concursos y otros eventos contarán con la participación holguinera en uno de los eventos más importante del #turismo en #Cuba.
Desde la Bodeguita del Medio en #Holguín trascendió que han confirmado su presencia varios expositores extranjeros y participantes procedentes de más de una decena de países.
Holguín apostará por mostrar su talento en los eventos competitivos en cocina y cantina, a partir del encadenamiento productivo con formas de gestión no estatal.
Una decena de ponencias se presentarán durante el evento, que contará con actividades colaterales en el balneario de #Varadero.
📸 Odalys Martínez Oliva