Когда разрабатываете свой 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
📰Instant View for Telegram Browser
In 2016, Telegram launched the Instant View standard — which automatically optimizes articles into perfectly formatted pages for your device with zero load times. This feature works for thousands of the most popular sites.
Telegram's in-app browser can now convert any article you are viewing into a more readable, lightweight layout.
To change a page to Instant View format, open the browser menu and select Show Instant View.
#Browser
👉The TG Times
📰In-App Browser
In the latest Beta version of Telegram for Android, you can visit web pages using the in-app browser without having to leave Telegram.
#Browser
👉The TG Times
Nanobrowser
Nanobrowser is an open-source AI web automation tool that runs in your browser. A free alternative to OpenAI Operator with flexible LLM options and multi-agent system.
🔗 Links:
- Add it to your browser (Only Edge and Chrome)
- Demo video
- Features
- Source code
Organization: Nanobrowser
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
🏷 Tags: #AI#Browser#Extension
🔤OSINT-браузер на базе OPERA Mobile
Я помню, что в предыдущих постах хвалил браузер Venator OSINT, который активно развивался (до определенной поры) и даже приобрел две дополнительный сборки: Venator Red — для исследования даркнета и Venator Security — версия с повышенным упором на безопасность.
Однако проект не обновляли уже больше года, и это вынудило меня искать альтернативные решения. Так я пришел к мысли о создании собственной версии OSINT-браузера. В качестве основы для него я выбрал портативную версию OPERA, которую можно было бы носить с собой на флешке.
OPERA имеет возможность добавления расширений, в том числе нейросетей, а также обладает достаточной приватностью. Интерфейс более чем современный. Оставалось импортировать в него свою подборку из 1700+ полезных ресурсов, а также разбить их по темам исследований. Результат превзошел ожидания.
P.S. Впрочем, для сторонников иных браузеров, осталась возможность импорта моей подборки источников, также доступных по ссылке выше.
🍪Поддержать канал
📱НАШИ КОНТАКТЫ
#⃣#OSINT#OPERA#BROWSER