Когда разрабатываете свой 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
📱 OnePlus o‘zining flagman modeli OnePlus 15ni taqdim etdi
ℹ️ Yangi model dizayni jihatidan kompakt OnePlus 13Tga yaqinlashgan: to‘g‘ri, mat pardali ramkalar, tekis displey va dumaloq burchakli kvadrat kamera bloki.
⚙️ Ichida esa kutganimizdek Snapdragon 8 Elite Gen 5 chip o‘rnatilgan bo‘lib, u “kosmik sinf” aerogel bilan jihozlangan yangi sovutish tizimi bilan sovutiladi.
🔋 Batareya esa butunlay o‘sdi — 6000 mAh dan 7300 mAh gacha.
✅ Asosiy texnik xususiyatlari:
- Displey: 6,78″ 1,5K LTPO OLED, 1-165 Hz
- Chipset: Snapdragon 8 Elite Gen 5
- Kameralar: 50 Mp (IMX906, 1/1,56″) + 50 Mpx keng burchak (116°) + 50 Mp telefoto (3,5×) + 32 Mp selfie
- Xotira varianti: 12+256 GB, 16+256 GB, 12+512 GB, 16+512 GB, 16+1024 GB
- Aloqa: 5G, NFC, Wi-Fi 7, Bluetooth 6.0
- Biometriya: displey ostida ultratovushli barmoq izi skaneri, yuzni aniqlash
- Suvga chidamlilik: IP66/68/69/69K
- Akkumulyator & zaryadlash: 7300 mAh, 120 W simli zaryad, 50 W simsiz zaryad
💵 Narxi: $562
➡️#oneplus | Birinchi raqamli IT-Blog
📱 Qualcomm yana bir bor MediaTek’ni ortda qoldirdi
ℹ️ Snapdragon 8 Elite’ga ega so‘nggi OnePlus 13 dunyodagi eng kuchli smartfon bo‘lib, u Xiaomi 15’dan ancha tezroq ishlaydi. Yangi avlodning flagman smartfonlari birinchi marta AnTuTu reytingiga kiritildi: deyarli barcha top-10 eng kuchli smartfonlar ro'yxati yangilandi, oktyabr oyidagi ro‘yxatda esa OnePlus 13 yetakchidir.
📊 Ayni paytda reytingda Snapdragon 8 Elite’da to‘rtta va Dimensity 9400’da beshta model bor: yangi top-end Qualcomm SoC’dagi modellarning eng yaxshisi Vivo X200 Pro uchinchi o‘rinda. Shunday qilib yana bir marta Qualcomm flagman platformasi MediaTek platformasidan tezroq ishlaydigan bo'lib chiqdi.
➡️#oneplus | Birinchi raqamli IT-Blog
📱 OnePlus 13 bilan tanishing
ℹ️ Tashqi ko'rinishi asosan o'zidan oldingi modelni eslatadi va deyarli o'zgarishsiz qoldi. Mish-mishlarga ko'ra, smartfon quyidagi xususiyatlarga ega bo'ladi:
• Displey: 6,8 dyuym 3168x1440 AMOLED, 120 Hz
• Chipset: Qualcomm Snapdragon 8 Gen 4 yoki Snapdragon 8 Elite
• Kameralar: asosiy 50 MP + eni 50 MP + 50 MP periskop + 50 MP selfi
• Suvga chidamliligi: IP69
• Xotira: 24 GB / 1 TB gacha
• Batareya va zaryadlash: 6000 mA/soat, 100 W, 50 W simsiz
📅 Smartfon taqdimoti 31-oktabrda bo‘lib o‘tadi va global taqdimotni 2025-yil boshida kutish mumkin.
➡️#oneplus | Birinchi raqamli IT-Blog
📱Shu brendga mehrim bo'lakcha lekin
ℹ️ OnePlus Nord 4 smartfoni to'liq metal korpusga ega bo'lib, Mercurial Silver, Oasis Green va Obsidian Midnight ranglarida taqdim etiladi. Qurilma AI Audio Summary, AI Note Summar, AI Linkboost hamda AI Groupfie deb nomlangan sun'iy idrok texnologiyalariga ega hamda Android 14 bazasidagi Oxygen OS 14.1'da ishlaydi.
⚙️OnePlus Nord 4 texnik xususiyatlari:
- Displey: Fluid AMOLED, 6,74 dyuym, ruxsati 1240x2772 piksel,
yangilanish tezligi 120 Hz, eng yuqori yorqinligi 2150 nits, HDR10+;
- Protsessor: Snapdragon 7+ Gen 3 (2,8 gigagertsli), Adreno 732 grafik;
- Operativ xotira: 8/12/16 GB;
- Ichki xotira: 128 / 256 / 512 GB;
- Asosiy kamera: 50 MP (f/1.8) + 8 MP (f/2.2);
- Old kamera: 16 MP (f/2.4);
- Batareya: 5500 mA/soat, zaryadlash 100 W;
- Operatsion tizim: Android 14 asosidagi OxygenOS 14.1;
- Boshqalar: NFC, stereo dinamiklar, displey ostidagi barmoq izlari skaneri;
- Olchamlari: 162,6×75×8 mm;
- Og'irligi: 199,5 g.
💸 Yevropada OnePlus Nord 4 12/256 GB versiyasi uchun 499 yevro, 16/512 GB xotiraga ega kuchli versiyasi esa 599 yevro turadi. Nord Buds 3 Pro minigarniturasi sovg'a sifatida taqdim etiladi. Yangi mahsulot 8-avgustdan sotuvga chiqariladi.
➡️#oneplus | Birinchi raqamli IT-Blog
🤯OnePlus’ 8 Pro has X-ray Vision Filter
it sees through plastic & clothes
Well, firstly, it’s not actual X-ray, though, it's infrared.
This is not a new technology, but it's pretty cool to have it on your #OnePlus#smartphone.
Read more on The Verge.
Video Credit: Ben Geskin.
Watch more tests on UnboxingTherapy.
🦅@perspectiveix