Когда разрабатываете свой 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
最近发现的一些 RSS Feed #源 分享: 第 16 期
1️⃣「(Unofficial) Apple Developer System Status Feeds」
2️⃣「The British Weird RSS Starter Pack」
3️⃣「An RSS feed for Docker image updates」
4️⃣「RSS Feeds for Humans」
5️⃣「Awesome Dev News: Curated news for developers. Updated every hour」
6️⃣「BBC News RSS Feeds (that don't suck!)」
7️⃣「Discovering via social media without being on social media」
8️⃣「GeoFeeds: a single, unified feed-of-feeds from geo-related/adjacent blogs」
9️⃣underlap.org's blogroll
🔟「Spoken Wikipedia Podcast RSS Feeds」 🎙
1️⃣1️⃣「A daily editorialization of Hacker News (with RSS)」
1️⃣3️⃣「BlogFlock: RSS feeds in public」
1️⃣4️⃣「Only Human Blogs」
1️⃣5️⃣「Ye Olde Blogroll: a humanly curated list of fine personal & independent blogs that are updated regularly」
🔸上一期:【15】
最近发现的一些 RSS Feed #源 分享: 第 15 期
1️⃣「Blogroll Network Map」
2️⃣Tristan's RSS Feeds
3️⃣CSS JOY Webring's OPML
4️⃣Justin McAfee's OPML
5️⃣「Large collection of RSS feeds in the AI space」
6️⃣「Here's a list of my feeds」
7️⃣「International newspapers with English-language RSS」
8️⃣「Going beyond the State of the Art: between scientific literature and RSS Feeds」
9️⃣「weekly0 - 优质周刊集合」
🔟Dan Q's Blogroll
1️⃣1️⃣「HackTuber News」
🔸上一期:【14】
最近发现的一些 Feed #源 分享: 第 12 期
1️⃣「Attention arXiv users: Re-implemented RSS」
2️⃣X友 Andrew Bamboo 的 RSS Feed 分享
3️⃣「博客聚合平台 RSS 订阅 - BlogFinder & 博友圈 & 十年之约」
4️⃣「An RSS Feed for the Google Chrome Developer Blog」
5️⃣「Stay up with the latest movies and TV shows with filtered JustWatch RSS feeds」
6️⃣「Scala News - A Community Crowd Sourced newsletter using RSS」
7️⃣「A collection of RSS feeds and links to the major scientific marketing journals」
8️⃣「南京大学 Linux User Group 收集的同学们的 Blog」
9️⃣「RSS feed (JSON & Atom) generator for official game news from Hoyolab.」
🔸上一期:【11】
最近发现的一些 Feed #源 分享:第2期
1️⃣「2021 V2EX RSS 订阅分享大会」
2️⃣ 电报频道:「Find Blog👁发现博客」
3️⃣ RPG feed (755 blogs) shared by twitter.com/yochaigal1
4️⃣「Refined Blog: A Curated List of RSS Feeds for Software Engineering Blogs」
5️⃣「Curated list of sources for tech, finance and ongoing learning & improvements」
6️⃣「Curated list of personal blogs on any topic, by mataroa.blog」
🔸 往期直达:1
最近发现的一些 Feed #源 分享: 第 7 期
1️⃣「Feed43 生成 RSS 订阅源分享」
2️⃣「A Big Pile of Personal Developer & Designer Blogs in an OPML File」
3️⃣「My RSS Setup」
4️⃣「Hacker News Frontpage Digest Feed」
5️⃣「A huge list of AI/ML news sources」
6️⃣「ooh! directory」: A collection of 1369 blogs about every topic
7️⃣「A list of RSS feeds maintained by the City of Columbus on GovDelivery」 #开源
🔸往期直达:123456
最近发现的一些 RSS Feed #源 分享: 第 14 期
1️⃣BestBlogs.dev 的订阅源
2️⃣Isaac's feeds
3️⃣Robert's Feed2Pages
4️⃣「AI 总结 Hacker News 上的链接,支持 RSS /中英文」#V2EX
5️⃣V2EX Xml News Aggregator 的 Feed 收录贴
6️⃣Harsh Browns's Blogroll
7️⃣「How I Try To Keep Up With The Data Tech World (A List of Data Blogs)」
8️⃣「Papers with Code RSS Feeds」
9️⃣「Aggregate blog posts discussed in tech YouTube channels like Theo - t3.gg, ThePrimeTime, etc」
🔟「NetNewsWire and RSS Recommendations」
1️⃣1️⃣「常见的英语新闻 RSS 采集地址」
1️⃣2️⃣「一个聚合AI相关节目的播客 RSS」
🔸上一期:【13】