Когда разрабатываете свой 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
😎
😎
😎
😎
😎
😎
😎
#aksiya
Qaynoq aksiya — naqd 9 xil mavsumiy mahsulotlarga🔥
Eng kerakli va ayni mavsumga mos mahsulotlar — endi yanada qulay narxlarda!
📅 8-9-10-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3kun! Imkoniyatni qoʻldan boy bermang 🔥
📌Kitoblarga -50% chegirma kerakmi?
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
#aksiya
✅Navbatdagi targ‘ibot aksiyasi Qoraqalpog‘iston Respublikasida o'tkazildi
Nukus shahridagi savdo majmualaridan birida bo‘lib o‘tgan “Mening solig‘im – yurtim iqboli” mavzusidagi aksiya nukusliklar xotirasida uzoq saqlanib qoladigan bo‘ldi.
Mazkur aksiya fuqarolar oʻrtasida soliq madaniyatini yuksaltirish va asosiysi, yashirin iqtisodiyotning oldini olishga qaratilganligi bilan ahamiyatlidir.
Savdo majmuasidagi gavjum muhit — har bir xarid, har bir chek, har bir so‘m kelajakka qo‘yilgan kichik, ammo ma’noli hissa ekani anglandi.
Ayrimlar uchun arzimasdek koʻringan xarid chekini talab qilishning ahamiyati, yashirin iqtisodiyot, xususan, savdo tushumlarini yashirish, soliqdan qochish va norasmiy bandlikning salbiy oqibatlari hamda xarid cheki uchun joriy qilingan keshbek, soliq imtiyozlari va yengilliklar, soliqlarning turlari va muddatlari xususidagi savollarga toʻgʻri javob bergan fuqarolarga Qoraqalpog‘iston Respublikasi soliq boshqarmasining maxsus sovgʻalari topshirildi.
Тelegram|Facebook|Youtube|Instagram|X|Threads
😎
😎
😎
😎
😎
😎
😎
#aksiya
“Mittivoy” 6 yoshda 🎊 Shu munosabat bilan oʻyinchoqlar boʻlimidan mega aksiya 🎈
📅 25-26-27-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3 kun! Imkoniyatni qoʻldan boy bermang 🔥
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
“Mittivoy”ning 6 yilligi munosabati bilan super aksiya 😍
Eng kerakli va ayni mavsumga mos mahsulotlar — endi yanada qulay narxlarda!
📅 25-26-27-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3 kun! Imkoniyatni qoʻldan boy bermang 🔥
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning 3-kuni! 🔥
Belgilangan vitrinadagi bahorgi ustki kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning 3-kuni! 🔥
Chaqaloqlaringiz uchun belgilangan vitrinadagi bahorgi kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning oxirgi 4-kuni! 🔥
Belgilangan vitrinadagi bahorgi kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
1+1 aksiyaning oxirgi 4-kuni! 🔥
Belgilangan vitrinadagi bahorgi oyoq kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
Bitta oling, ikkinchisi bepul! 🔥
Belgilangan vitrinadagi bahorgi kiyim va oyoq kiyimlar uchun 1+1 aksiya ✅
Shoshiling, aksiyaning oxirgi 4-kunidan xarid qilishga ulguring 🔥
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish