Когда разрабатываете свой 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
LINQ asoslari
LINQ (Language-Integrated Query) - bu ma'lumot manbasidan so’rov olish uchun oddiy va qulay til. Ma'lumotlar manbayi sifatida - IEnumerable interfeysini (masalan, standart to'plamlar, massivlar) amalga oshiradigan obyekt, DataSet, XML hujjati bo'lishi mumkin. Ammo manba turidan qat'iy nazar, LINQ ma'lumotni olish uchun barchasi uchun bir xil usulni qo'llashga imkon beradi.
👉Batafsil
👨🏫 Mentor: Nodirbek Abdulaxadov
#csharp#linq#database#professional
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
#csharp#c_sharp#linq#unity
ZLinq is a high-performance, zero-allocation LINQ library for .NET and game engines like Unity and Godot. It improves on regular LINQ by avoiding memory allocations during method chaining, boosting speed and efficiency, especially in demanding apps like games. You use it by calling `AsValueEnumerable()` on collections, enabling faster queries with almost full compatibility with .NET 10 LINQ features. It supports advanced operations on arrays, spans, trees (like file systems and JSON), and SIMD for parallel processing. ZLinq also offers drop-in replacements to accelerate existing LINQ code without rewriting. This means you get faster, more memory-efficient data processing with minimal code changes[1][3][4].
https://github.com/Cysharp/ZLinq
IEnumerable va IQuerable
LINQ so`rovlarda qaytish tipi aniq bo`lgan holatlarda ularni to`plam holatida qabul qilib olish uchun IEnumerable interfeysidan foydalaniladi. Ushbu interfeys System.Collection namespace da joylashgan.
👉Batafsil
👨🏫 Mentor: Jasurbek Xasanboyev
#csharp#linq#query#professional
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
Expressionlar va ulardan resurslar so'rovlarida foydalanish
Talablarga binoan, siz kutgan mavzu - Expressionlar. Barchaga ma'lumki, database dan kelayotgan ma'lumotlarni dinamik holatda filterlash, saralash unchalik ham oson emas. Ushbu mahorat darsimizda, Sultonbek sizlarga expression/query lar bilan ishlashning yangicha usulini taqdim etmoqchi. Eng qizig'i shundaki, bizning speaker mavzudan ilhomlanib, ushbu amaliyot uchun yangi kutubxona ham ishlab chiqishga ulguribdi. Judayam qiziq, sinab ko'ramiz-a, nima deysiz?
Barchangizni ushbu mahorat darsida kutib qolamiz. Kirsangiz xursand bo'lamiz, kirmasangiz hafa bo'lish yo'q )
Sana: 22-yanvar, 20:00
Havola: Zoom
Speaker: Sultonbek Rakhimov
#expression#linq#filtering#sorting
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube