Когда разрабатываете свой 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
🆕Appointments here!
We glad to present you a 1st version of Appointment system. This journey was challenging, interesting and took 4 months. We faced complex challenges where we had to create a new approach.
🌐 Now you can discover all kind of businesses in one mini app with convenient map. Your country, your service, your time!
🛍 We know that our users want to provide their customers with only the best service that will work 24/7 without interruption. All on one page and app. Provide services and book services from others. The era of Telegram appointments is now open!
And don't forget, almost all new businesses will be available for viewing and researching by thousands of Callegram users. Don't miss the opportunity to be the first to create a business!
App | #Callegram#MiniApps#Appointments
🔜 We're at the finish line!
This is what the booking process will look like from the client's side. Choose the time, master and service that is convenient for YOU 👍
App | #Callegram#MiniApps#Appointments
✏️Find a Cool Service Directly in @CallegramBot? Why Not?
We’re almost here with a new huge update — Appointments.
Our users will be trying to find an awesome services directly in the mini app.
We’re doing our best!
App | #Callegram#MiniApps#Appointments
🚨AI Takes Your Job
And this is awesome! Today we’ve tried our first version of AI Appointments. And it works really great!
In the near future your clients will chat with you about services and AI will assist you with confirming appointments.
Different languages, text and voice messages. No more annoying work!
Be ready for the feature right now. Create your business
🔗t.me/CallegramBot/subscribe_business
App | #Callegram#MiniApps#AI#Appointments
🔜Appointments In Callegram
This is a big part of our service and we want to share with you a first sneak peak.
⚠️ This feature is not available now. Check our news below.
Users. You will get an option to make an appointment directly in Telegram for your favorite services. You don’t need to make a call or visit the service location. Just few clicks and you will get what you want + reminders about upcoming service.
Businesses. Setup your businesses, locations, specialists, their schedules and services. Automate your handwork and launch your services in Telegram within a few minutes.
Marketplaces. If you want to use our Callegram system in your flow and give your merchants opportunity to create an appointment schedule, please contact @krimon
👀 Stay tuned and check the news in our channel
#MiniApps#Telegram#Business#Appointments
🤫Page Of Businesses
Users, are you ready to make appointments in a few clicks?
Businesses, are you ready to provide your services seamlessly?
🙂 Stay tuned
#Appointments#MiniApps#Business#CallegramBusiness
⚙️We've automated everything for you
Now your business' schedule is sent automatically if the person writes the words ‘Book’, ‘Appointment’
To activate the function:
1) Create a business with services;
2) Pay subscription;
3) Add @CallegramBot in Telegram settings in "Telegram Business - ChatBots".
Now your customers will get a specific message with option to make an appointment.
Don't waste time on routine, get down to business. Callegram optimises your work 💰
App | #Callegram#MiniApps#Appointments#TelegramBusiness