Когда разрабатываете свой 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
🌍 The precise coordinates of Mount Everest’s summit are 27.9881°N, 86.9250°E. Even tiny deviations matter—Everest’s actual peak sits just a few meters southeast of its famed marker. ✨
#coordinates⚡#Everest⚡#mapping⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
Уже сегодня, буквально через несколько часов, а точнее в 11:30 будет уникальнoe событие — живая встреча с героями нашего времени, которые покорили Джомолунгму, высочайшую вершину Земли (8848 м)
А имеено:
• Эдуард Кубатов – Президент Федерации альпинизма и скалолазания Кыргызстана;
• Илим Карыпбеков – известный альпинист и общественный деятель;
• Кадыр Сайдилкан – выдающийся спортсмен и покоритель множества вершин.
Эти выдающиеся личности поделятся своими впечатлениями, расскажут о сложностях и радостях покорения гор, а также о значении альпинизма для Кыргызстана и Mира.
Мы гордимся их достижениями и хотим, чтобы это вдохновляющее событие стало достоянием общественности.
Дата и время: 20 июня 2024 года, 11:30
Место проведения: Толомуш Океева 39/7.
Телефон : 0702722280
Присоединяйтесь, чтобы вместе провести время и поддержать развитие альпинизма и скалолазания в Кыргызстане!
@BishDvizh#альпинизм#Everest
🌎 Mount Everest’s “death zone” begins at 8,000 meters above sea level, where oxygen levels are so low that humans can only survive for hours without aid. Wind chills can drop to –50°C even in summer. ✨
#Everest⚡#altitude⚡#climate
👉subscribe Interesting Planet
👉more Channels
❄️Artel Everest - qulaylikning yangi cho'qqisi!
⚡️Past kuchlanishda ham ishlaydi.
〽️Elektr tokining uzilishlaridan so'ng sozlangan haroratda ishga tushuvchi Auto Restart funksiyasi bilan jihozlangan.
🍃Pultdagi IFeel tugmasi Artel Everestga pult joylashgan xudud haroratini aniqlab xonani samarali sovutish imkonini beradi.
Yangi model quyidagilarni o'z ichiga oladi:
🔇past shovqin tezligi;
⚒tozalash va diagnostika funksiyasi.
🌐 Batafsil: https://artelgroup.org/product/nastennyj-kondicioner-artel-everest-sidaw12he,1179/
___________________________
❄️ Artel Everest – новая вершина комфорта.
⚡️Работает при низком напряжении.
〽️Оснащен функцией Auto Restart, которая перезапускает кондиционер в случае перебоев электричества.
🍃Пульт с I Feel позволяет Artel Everest определять температуру с учетом места нахождения пульта и эффективно охлаждать помещение.
Новинка также имеет:
🔇Низкий уровень шума
⚒Функции самоочистки и самодиагностики.
🌐 Подробнее: https://artelgroup.org/product/nastennyj-kondicioner-artel-everest-sidaw12he,1179/
#ARTEL#EVEREST#yangilik#новинка#кондиционер
🌎 Mount Everest’s summit sits in the world’s highest extreme climate zone, called the “alpine zone,” where temperatures can plunge to –60°C and oxygen levels are a third of sea level. Rapid weather changes can create deadly storms in minutes. ✨
#Everest⚡#alpineclimate⚡#extremes
👉subscribe Interesting Planet
👉more Channels