Когда разрабатываете свой 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
#TMK#Journal
🌎TMK – iqtisodiyotning yuragi urayotgan nuqtada
🖥Ba’zan birgina sahifa ortida butun bir sohaning yutuqlari, kelajak rejalarining xaritasi yashiringan bo‘ladi. Bugun biz aynan shunday yangilik bilan o‘rtoqlashamiz:
📰“Iqtisodiy sharh” jurnalining navbatdagi sonida O‘zbekiston texnologik metallar kombinati faoliyati, xalqaro bozorga chiqishdagi qadamlarimiz va yangi imkoniyatlarimiz haqida maqolalar chop etildi.
⚡️Bu nafaqat sanoat, balki xalqaro maydondagi O‘zbekiston nomi uchun ham muhim bosqich.
Har bir satr – kelajak sari intilishimizning isboti.
🔹🔹🔹
🌎TMK — в точке, где бьется сердце экономики
🖥Иногда за одной страницей скрывается карта достижений и планов на будущее целой отрасли. Сегодня мы делимся именно такой новостью:
📰В очередном номере журнала "Экономическое обозрение" были опубликованы статьи о деятельности Узбекского комбината технологических металлов, наших шагах по выходу на международный рынок и новых возможностях.
⚡️Это важный этап не только для промышленности, но и для имени Узбекистана на международной арене. Каждая строка - доказательство нашего стремления к будущему.
🗄🗄🗄🗄
✅TMK matbuot xizmati
🌐Web-site|🔵Facebook |📷Instagram| 🎰LinkedIn|🎬Youtube|🚀Telegram
💲🇺🇸🇯🇵Le journal de bord du capitaine Robert Lewis, copilote du bombardier américain B-29 Enola Gay qui avait largué une bombe atomique sur Hiroshima en 1945, a été mis en vente pour près d'un million de dollars, rapporte le Washington Post.
Le carnet contenant les notes de Robert Lewis, qu'il a prises pendant et après le bombardement, a été mis en vente par le marchand californien de livres rares Dan Whitmore. Le prix demandé est de 950.000 dollars. Il est noté que le journal contient notamment sa célèbre phrase "Mon Dieu, qu'avons-nous fait".
C'est la cinquième fois que le carnet est mis en vente. Il a été vendu pour la première fois aux enchères en 1971 pour 37.000 dollars. La dernière vente a eu lieu en 2022, le montant de la transaction s'élevait alors à 543.000 dollars.
#étatsunis#journal#hiroshima
🇺🇸🇮🇷🇺🇦 Le journal américain The Washington Post a illustré son article affirmant que l’armée américaine avait déployé des mines dans le sud de l’Iran avec une photographie provenant de la zone de conflit en Ukraine.
#étatsunis#journal#mines#photo
#Refuge#Journal#amp#Mindfulness
Join the Refuge - Journal & Mindfulness beta on ✈️#TestFlight
🔗 Link: https://testflight.apple.com/join/v1Nx7smz
Shared by Dimitri