Когда разрабатываете свой 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
🐱TAO NFC SDK - библиотека для упрощения работы с NFC в Android приложениях, особенно упрощая работу с NDEF (NFC Data Exchange Format).
🔗 Автор также написал статью на русском про библиотеку
#android#nfc
微信测试境外 NFC 支付功能:使用 Visa 网络,支持零钱通、零钱付款
微信正在测试境外 NFC 支付功能,目前仅支持安卓手机。用户可通过 Visa 网络完成支付,资金来源为零钱或零钱通,不支持银行卡。该功能尚处测试阶段,需在境外环境下才能开启。
标签:#微信#nfc
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
#приплыли
🟢Россиийская киберполиция задержала группу,совершавшую хищения с использованием NFCGate
Речь о межрегиональной преступной преступной группе. В числе задержанных - главный админ панели управления программы NFCGate.
🟢Именно этой группой совершались дистанционные хищения денег с банковских карт граждан практически по всей России.
🟢Уже подтверждено более 600 эпизодов преступной деятельности на территории 78 регионов России.
Сообщается, что помощь в выявлении преступной схемы оказали специалисты
«Лаборатории Касперского».
‼️По предварительным данным, сумма ущерба превышает $2,6 миллиона (~200 миллионов рос.рублей).
Суть схемы.
#киберновости#россия#nfc
Буст канала