Когда разрабатываете свой 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
#material
Высота по оси z в Material Design.
1. Навигационное меню — 16dp;
2. Панель приложения — 4dp;
3. Карточки — от 1dp к 8dp при нажатии;
4. FAB — 6dp;
5. Кнопка — от 2dp к 8dp при нажатии;
6. Диалоговое окно — 24dp.
Подробнее
😄Material
➖➖➖➖➖➖
🔘Material is what things are made from.
🔜 What material is this table? It's wood.
🔘Material can also be another word for cloth.
🔜 Can you make a dress using this material?
🔘Material is information used in writing as well, often for promotional purposes.
🔜 Take this material and write an article using it. It's interviews about living in the UK.
#Material👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
😄Material
➖➖➖➖➖➖
🔘Material is what things are made from.
🔜 What material is this table? It's wood.
🔘Material can also be another word for cloth.
🔜 Can you make a dress using this material?
🔘Material is information used in writing as well, often for promotional purposes.
🔜 Take this material and write an article using it. It's interviews about living in the UK.
#Material👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
В Material Component for Android 1.13.0 (пока в альфе) добавили новые виджеты на View системе:
👉Docked Toolbar
👉Floating Toolbar
👉Split Button
#android#material
Material Design 3 Expressive красив только на картинках от дизайнеров. По сути своей сделали гигантизм, из-за чего приходится на маленьких экранах уводить в более мелкие элементы интерфейса (через настройки плотности). Переводы и размещение текста оставляют желать лучшего. Как по мне - худший редизайн Android за всю историю.
Успели попробовать? Какие ваши впечатления?
#material#ui
Yaqinda Google rasman oʻzining Material 3 Expressive dizayn tizimini taqdim etdi
Ushbu tizimda ular yorqin ranglar, jonli tipografiya va animatsiyalarga urgʻu berishdi.
Tizim ustida uch yil davomida ish olib borildi, 18 000 nafar inson ishtirokida 46 ta tadqiqot oʻtkazildi.
Batafsil: https://m3.material.io/
Aytishlaricha, Android 16 (Beta)da bu yangilanishni koʻrishimiz mumkin ekan. Sizga yangi dizayn tizimi yoqdimi?
@suxrobblog // #google#material
🚀Вышел Jetpack WindowManager 1.4 - библиотека с API для построения адаптивного UI в Material3 (можно применить и к другим UI Kit): WindowSizeClass, Activity embedding, WindowsInfoTracker и др.
Про изменения отдельными постами дальше
#jetpack#ui#material
📹Building adaptive Android apps (40 минут)
Очень классное видео про то как подходить к разработке приложений без привязки к экрану, а думать именно в терминах пространства для отрисовки
0:00 Введение
4:15 Зачем создавать адаптивные интерфейсы?
7:49 Адаптивность в Compose Material 3
13:01 Создание UI с Compose Material 3 Adaptive
22:07 Положения складных устройств
23:32 Анти-паттерны
26:52 Ввод, выходящий за рамки сенсорного управления
30:36 Тестирование на разных устройствах
36:17 Адаптивный рабочий процесс
39:29 Обратная связь и заключительные замечания
#android#material#большикэкраны