Когда разрабатываете свой 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
У наших Друзей!
Отличная новость! 😃 СКИДКА 30% на OKUMA COMPETITION 💥 - АКЦИЯ ДО 28.07.2023! 🎣 Приобретайте выгодно! 😉👌
Спрашивайте продукцию в магазинах вашего города!
OKUMA COMPETITION🎣
Технологические решения:
• Конструкция бланка из карбона 24T
• Пропускные кольца из нержавеющей стали
• Прочные вставки колец из оксида титана
• Катушкодержатель из нержавеющей стали с логотипом Okuma
• Раздельная конструкция рукоятки для уменьшения веса и улучшения баланса
• Удобные передние и задние рукоятки из EVA
• Петля для приманки из нержавеющей стали
✅https://normark.ru/okuma-shops/
#диалогиорыбалке
#okuma
📺ЧАТ КАНАЛА-https://t.me/dialogitv_ru
Главный пассажир в катере находится в безопасности.
Очень любит сам вытаскивать рыб и потом их отпускать)))
Александр Филин
#диалогиорыбалке
#наполнуюкатушку#ока#судак#диалогиорыбалке#okuma#семья
📺ЧАТ КАНАЛА-https://t.me/dialogitv_ru
Здесь щука есть!!!
Перед стартом первого этапа Pro Anglers League 2024 выкладываем только такие фото чтобы не слить точки
#диалогиорыбалке#рыбалка#хсн#hsn#shaman#okuma#pal#фабрикалодок
Ищем крупных щук и судаков в коряжниках. Пока нашли только коряжник. Ждём когда в них поселится рыба, но это не точно
#диалогиорыбалке#рыбалка#фабрикалодок#хсн#hsn#shaman#okuma#pal
Как, Клевое детство-принял участие в ежегодном фестивале «Жигулёвский окунь». Среди 52 участников занял 34 место. Оба тура сыграл без нулей. Итоговый вес 420 грамм в пяти рыбах. Для начала неплохо, но чтобы подниматься по турнирной сетке, нужно упорно тренироваться.
Любите природу, ходите на рыбалку и пусть у Вас всё будет клЁво!
Даниил Цветов👍
Полный выпуск программы вы можете посмотреть :
✅https://vk.com/video-161605999_456239583
#диалогиорыбалке#клёвоедетство
#Научименя
#hsn#хсн#azorfishing#okuma#rapala
📺ЧАТ КАНАЛА-https://t.me/dialogitv_ru
Ну вот и завершился шестой ежегодный фестиваль Телеканала «Диалоги о рыбалке»
Мы не прощаемся, а говорим, до скорых встреч, друзья!
#диалогиорыбалке#рыбалка#клёвоеместо#астрахань#хсн#hsn#shaman#okuma#heartyrise#jigit