Когда разрабатываете свой 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
Al-Xorazmiy universiteti - maqsad hamda vazifalar
✨ Universitetning asosiy maqsadi – dunyo miqyosidagi ilmiy-tadqiqotlarga asoslangan, innovatsiya va texnologik taraqqiyot markazi bo‘lgan, mintaqada yetakchi va xalqaro nufuzga ega oliy ta’lim muassasasiga aylanishdir.
✅ Universitet Xorazm viloyatining iqtisodiy, ilmiy va texnologik rivojlanishini jadallashtiruvchi tayanch markazi sifatida xizmat qiladi hamda mintaqaning jahon ta’lim va tadqiqot landshaftida strategik o‘rin egallashini ta’minlaydi.
⚡️ Quyidagilar Universitetning asosiy vazifalari hisoblanadi:
🔹zamonaviy bilim va malakaga ega yangi avlod olimlari, muhandislar, IT-mutaxassislar va tadqiqotchilarni tayyorlash;
🔹maktab ta’limidan tortib, ilm-fanning barcha jabhalarini qamrab oladigan uzluksiz ta’lim klasterini shakllantirish;
🔹talabalarda mustaqil tahlil, ijodiy va innovatsion fikrlash ko‘nikmalarini rivojlantirish, amaliy tajribalarni kuchaytirish va mustaqil o‘rganish uchun qulay muhit yaratish;
🔹xalqaro ilmiy hamkorlikni rivojlantirish hamda talabalarni tadqiqot va innovatsiyaga keng jalb qilish orqali universitetni mahalliy va xalqaro nufuzli tadqiqot markaziga aylantirish;
🔹ilmiy-tadqiqotlarni mamlakatning, ayniqsa Xorazm viloyatining ijtimoiy-iqtisodiy sohalari ehtiyojlaridan kelib chiqib olib borish, ularni amaliyotga joriy etish va texnologik transferni ta’minlash;
🔹talaba-yoshlarda ma’naviy va axloqiy fazilatlarni rivojlantirish, vatanparvarlik va kasbga sadoqat hissini mustahkamlash, ta’lim-tarbiya jarayoni hamda ma’naviy-ma’rifiy ishlar samaradorligini oshirish.
🔁English
➖➖➖➖➖➖➖➖➖➖
#mission#vazifalar
👇 Biz ijtimoiy tarmoqlarda:
Telegram | Instagram | Facebook | Aloqa-bot