Когда разрабатываете свой 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
⭐️ FPS – bu nima va nega muhim?
FPS — bu “Frames Per Second”, ya’ni sekundiga ko‘rsatilayotgan kadrlar soni degani. Ekranda qancha ko‘p kadr ko‘rsatilsa, tasvir shunchalik silliq, jonli va tabiiy ko‘rinadi.
📊 FPS darajalari nimani bildiradi?
24 FPS bu - kino va filmlar uchun standart. Kadrlar soni kamroq, lekin ko‘z ko‘nikib ketadi.
30 FPS bu - telefon va oddiy kompyuter o‘yinlarida keng tarqalgan. O‘rtacha silliqlik.
60 FPS bu - silliq harakatlar, o‘yinlar va video uchun ideal daraja.
120 FPS+ bu - professional gamerlar va yuqori darajadagi monitorlar uchun. Ultra silliqlik!
🖥 FPS nima uchun muhim?
✅ O‘yinlarda yuqori FPS — tez javob, aniq nishonga olish va “lag”siz o‘ynash demak.
✅ Video tahrirlashda — harakatlar real ko‘rinadi, ayniqsa sport yoki aksiyalarni ko‘rsatganda.
✅ Virtual haqiqat (VR) texnologiyalarida esa past FPS bosh aylanishi va ko‘z charchog‘iga sabab bo‘ladi.
✅ Xulosa:
FPS — bu oddiy raqam emas. U sizning o‘yin yoki videodagi qulaylik, aniqlik va silliqlik darajangizni belgilaydi. Ayniqsa gamerlar uchun bu juda muhim ko‘rsatkich!
👉Bizning barcha loyihalar | #fps
‼️NFT SALE ON@altura_nft‼️
🔫Users can purchase NFT items on ALTURA marketplace at 12PM UTC, Apr 8th 22
⚡️PRESALE & PUBLIC SALE NFT items will be minted on Metastrike.io in 3 weeks from now
https://twitter.com/metastrikehq/status/1512417518992130055?s=21&t=IrjOJtnk9YYpVx_EligtLg
📜join:t.ly/ny93
👉join: t.ly/hsC9
#NFT#FPS#P2E
‼️OPEN ALPHA EVENT ANNOUNCEMENT‼️
🔥Team up, Play, give feedback and Win a Total Prize of $10,000🔥
All $MTS collected through the event will be burned
Full detail: https://t.ly/oD2U
Register form: https://t.ly/h8xy
#FPS#P2E#NFTs