Когда разрабатываете свой 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
#Repo-PowerBI
Cumpliendo las peticiones de algunos de ustedes hemos creado un 💫Nuevo grupo de PowerBI, donde estaremos compartiendo cursos, y libros.
Pueden unirse en el enlace de abajo👇
🔗Link
-----
Main channel:@repo_science
Coupons:@freecoupons_reposcience
-----
Reaction Saver
#repo: https://github.com/xditya/ReactionSaver
- React to any message in DMs to save to your configurable LOG_CHAT
- Good for messages or files sent in DMs with privacy enabled (forwards turned off)
- Steps to set up are available here
Star the repo if it helped :)
~ @BotzHub
🎉 Just pushed a new repository to GitHub, been a while :)
ImageTools
#repo: https://github.com/xditya/ImageTools
a python script to manipulate images
- Resize images to exact pixel dimensions (width × height)
- Auto compress images to target file sizes with optimal quality.
- Add noise to ensure the image size meets your requirements.
- Works with JPEG, PNG, and WebP formats.
Makes applying for online examinations easier - no more visiting random websites to alter image dimensions and sizes!
Do leave a ⭐️ if the repo helped :)
~ @BotzHub
Presenting @GeminiTalkBot!
Yes, that's me releasing a bot after a long time lol
#repohttps://github.com/xditya/GeminiChatBot (do give a 🌟)
An AI ChatBot and problem solver, using Google's Gemini AI Model.
- remembers conversations for a smoother problem solving experience, without leaving telegram!
- utilizes Gemini's full capabilities in text generation.
- and more, idk what to add here 🙂
Follow me on GitHub & help me reach 500 followers!
https://github.com/xditya
~ @BotzHub
WhatsApp Media to Sticker
#repo - https://github.com/xditya/WhatsAppUtilitiesBot (do give a ⭐)
- A WhatsApp userbot, currently aimed at converting media to stickers, from within WhatsApp!
You can find a sample bot in the comments of this post, but I'd recommend hosting one yourself, to prevent bans!
Let me know if you have ideas to implement in this bot 😄
Heavily inspired by J Projects
~ @BotzHub
😇 Just made a link shortener website, https://short.xditya.me
🔥 It's opensource, #repo: https://github.com/xditya/WebShortener(do give a ⭐️) and has an API endpoint!
🌚 Powered by 👩💻
👀 Please give your feedback, this is my first working website
~ @BotzHub
🆕PresentingGetRestrictedMessages!
✈️ Deploy your own userbot to copy messages from public and private telegram chats with forward restrictions enabled!
🔥#repo - https://github.com/xditya/GetRestrictedMessages
React to this message with "🌚" if you want a video tutorial on deploying it!
😎 Let me know your opinions in the comments! Star the repository, it encourages me to make more open-source projects :)
~ @BotzHub
Presenting @TGdetailsBot
#repo - https://github.com/xditya/TGdetailsBot
- Get the message data in a telegram message.
- Get chat ID, or forwarded from (channel/user) ID.
- "Interactive" bot.
- Supports clones (read "help" of the bot to know more)!
~ @BotzHub
Deployyour own version of@ChannelActionsBot!
Tutorial - https://youtu.be/hjxfJtk5ZWs
#repo - https://github.com/xditya/ChannelActionsBot
Like the video!
~ @BotzHub
@PexelsSearchBot
#repo🌐 - https://github.com/xditya/PexelsBot
- Inline bot to search images from Pexels.
- Open-source, made in ts 👌
- Use the bot inline, to search and send high quality images from pexels.com.
~ @BotzHub
@MDiskLinksRoBot
🌐#repo - https://github.com/xditya/mdiskDownloadLinks
- Generate direct download links from any MDisk.me link.
- My first bot in TS 👩🦯
- Please do 🌟 the repository!
~ @BotzHub
@TheEmailBot
🌐#repo - https://github.com/xditya/Mailbot
- Generate temporary emails from within telegram.
- Receive mails in that temp mail directly in the bot, with attachments, if any.
- @TheEmailBot also supports custom as well as random email addresses.
Do star the repository⭐️
Also, thanks for 12k members in this channel! ❤️
~ @BotzHub