Когда разрабатываете свой 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
Cholesterol protects the integrity of cell membranes and keeps cells healthy and strong. If a person’s cholesterol level were 0 (an impossibility), his cell membranes would be dry and cracked and all the cell content would leak out.
@googlefactss#humanbody
For most women (about 65%), the left breast is bigger than the right one. Researchers are unsure why, but they point to hormonal influences during development.
@googlefactss#humanbody
A human spinal cord stops growing in length around age four or five, while the vertebral column (spine) continues to grow until late adolescence or early adulthood.
@googlefactss#humanbody
In a condition called pelvic prolapse, a woman’s vagina can literally fall out and hang between the legs. Pelvic prolapse, however, can often be fixed..
@googlefactss#humanbody
[read more...]
The same skin cells that make up a human vagina are the same type of cells that are in a human mouth. The nonkeratinized stratified squamous epithelium are types of mucous membranes that are sensitive, absorbent, and continuously shed and regenerated.
@googlefactss#humanbody
It is common and normal for mothers to poop while giving birth. This often happens during the pushing stage because the muscles used to push a baby out are the same ones used to have a bowel movement.
@googlefactss#humanbody#nowyouknow
Occasionally, human corpses can undergo saponification, a process in which body fat transforms into adipocere through a chemical reaction. Adipocere has a consistency similar to semi-hard cheese and possesses a soapy feel. The most well-known example of this phenomenon is the "Soap Lady," a 140-year-old mummy showcased in Pennsylvania.
@googlefactss#humanbody#nowyouknow
Myth: The tongue is divided up into specific areas that are solely responsible for sensing certain tastes (e.g., sweet at the tip, bitter at the back)
Fact: The tongue's receptor cells that identify the molecules underlying the basic tastes (sweet, sour, salt, bitter and umami) are distributed on taste buds all over the tongue although some areas may be slightly more sensitive to certain flavors..
@googlefactss#humanbody#nowyouknow#mythbusted
[read more...]
Fingernail facts:
The middle finger’s nail grows the fastest while the smallest finger’s grows the slowest.
Nails usually grow faster on your dominant or more active hand (more use → more repair → more blood/nutrients) and speed up in summer thanks to better circulation.
Toenails grow slower.
Overall, males’ nails often grow faster than females’, but during puberty and pregnancy higher hormone levels make nails grow quicker in women.
[Source]
@googlefactss
#FunFact#HumanBody#nails