Когда разрабатываете свой 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
😄Pretty
➖➖➖➖➖➖
🔘Pretty as an adjective means 'attractive, especially when talking about girls or women'.
Margo always tells her daughter that she's pretty.Margo always tells her daughter that she's pretty.
🔜Jacob's mum is really pretty.
🔘Pretty is also used to talk about things that are 'pleasant to look at in a delicate or charming way'. While this is often connected to females, it can also be used to describe something like 'a view'.
🔜There's a very pretty view at the top of that hill.
🔜My friend moved out of the city and bought a pretty cottage in the countryside.
🔘As an adverb, pretty can be an informal way of saying 'quite' or 'rather'.
🔜The house was built recently, it's pretty new.
🔜I enjoyed that film, it was pretty good.
🔘We can also use pretty to give emphasis.
🔜We went to bed at 2am, so we were pretty tired.
🔜I'm pretty angry right now, so don't talk to me.
#Pretty👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
😄Pretty
➖➖➖➖➖➖
🔘Pretty as an adjective means 'attractive, especially when talking about girls or women'.
Margo always tells her daughter that she's pretty.Margo always tells her daughter that she's pretty.
🔜Jacob's mum is really pretty.
🔘Pretty is also used to talk about things that are 'pleasant to look at in a delicate or charming way'. While this is often connected to females, it can also be used to describe something like 'a view'.
🔜There's a very pretty view at the top of that hill.
🔜My friend moved out of the city and bought a pretty cottage in the countryside.
🔘As an adverb, pretty can be an informal way of saying 'quite' or 'rather'.
🔜The house was built recently, it's pretty new.
🔜I enjoyed that film, it was pretty good.
🔘We can also use pretty to give emphasis.
🔜We went to bed at 2am, so we were pretty tired.
🔜I'm pretty angry right now, so don't talk to me.
#Pretty👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
http://www.enlistq.com/10-python-idioms-to-help-you-improve-your-code/
If you have ever tried to learn a new language (not a programming language), you know that we always think in our native language before we translate it to the new language. This can lead to you forming some sentences that don’t make sense in the new language but are perfectly normal in your native language. For example, in a lot of languages, you ‘open’ an electronic gadget such as fan, AC or cell phone. When you say that in English, it means to literally open the gadget instead of turning it on.
The same is true for programming languages. As we pick up new languages, such as #python, we are using our prior knowledge of programming in another language (q, java, c++ etc) and translating that to python. Many times, your code will work but it won’t be ‘#pretty’ or #fast. In python terms, your code won’t be ‘#pythonic’.