Когда разрабатываете свой 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
#bootloader unlock wall of shame
https://github.com/melontini/bootloader-unlock-wall-of-shame
updated guide, check it before buying a #phone
Over the past few years, a suspicious number of companies have started to "take care of your data", aka block/strictly limit your ability to unlock the bootloader on your own devices.
While this may not affect you directly, it sets a bad precedent. You never know what will get the axe next: Shizuku? ADB? Sideloading? I thought it might be a good idea to keep track of bad companies and workarounds.
#android
#Xiaomi#Bootloader#Unlock without PC (Phone-To-Phone)
Note: We are not responsible for any data loss or corrupt devices. Proceed at your own risk. This procedure requires the use of 2 Android phones and an OTG cable for ADB debugging. If this is your first time unlocking the bootloader or your device is using a new MIUI account, proceed with Step 2 after 7 days
Step 1 [Configuring Settings] [Primary Phone]:
» Go to Settings > About Phone: Click on MIUI Version multiple times until developer options are enabled
» Go to Settings Homepage > Additional Settings > Developer Options: Enable OEM Unlocking and USB Debugging
» Then go to Mi Unlock Status: Click on Add account and device
Step 2 [Installing Flash scripts] [Secondary Phone]:
» Download and install these 3 APKs on your secondary phone:
https://github.com/RohitVerma882/termux-miunlock/ (outdated?)
https://github.com/termux/termux-app/releases/
https://github.com/termux/termux-api/releases/
» Connect the primary phone to the secondary phone via OTG
» Boot the primary phone into fastboot mode
» Open the Termux app: Follow and run these commands one by one according to the instructions
👤Credits
Techbuzznet (Video instructions for Indians)
RohitVerma888
@WildWaze ( thx for help and banner)
https://t.me/popMODS/3621
#Unlock#bootloader#xiaomi#Android
HyperSploit
Bypass HyperOS restrictions on bootloader unlocking
https://github.com/TheAirBlow/HyperSploit/
https://xdaforums.com/t/hypersploit-bypass-hyperos-bootloader-unlocking-restrictions.4668775/
MiUnlockTool
Retrieve encryptData (token) for Xiaomi devices to unlock bootloader, it is compatible with all platforms.
https://github.com/offici5l/MiUnlockTool
termux-miunlock
A program that can be used to retrieve the bootloader unlock token for Xiaomi devices (and unlock the bootloader) using Termux
https://github.com/RohitVerma882/termux-miunlock/