Когда разрабатываете свой 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
🎂Telegram’s 11th Anniversary Update: New Features to Explore
Telegram has rolled out a special update for its 11th birthday, bringing several important new features.
⭐️Star Reactions:
You can now support your favorite creators by sending them Stars. Creators receive 100% of your donation, which they can convert to Toncoin or use for ads.
💫Star Subscriptions:
Admins can create invite links for channels that require a monthly subscription, paid in Stars.
🦸Super Channels:
Any channel can now become a Super Channel, allowing admins to post either as themselves or as other channels they manage.
@Viral_Today / #anniversary
Telegram Info Rayakan 9 Tahun Perjalanan
Telegram Info, platform informasi utama tentang Telegram, merayakan sembilan tahun perjalanannya sejak pertama kali diluncurkan. Channel asli berbahasa Rusia mulai aktif sembilan tahun lalu, diikuti cabang berbahasa Inggris yang hadir pada 20 Desember 2018. Awalnya menggunakan terjemahan mesin, kini kualitasnya semakin meningkat berkat keterlibatan penerjemah manusia.
Proyek Utama Telegram Info:
• TON Info: Channel khusus yang membahas pembaruan TON, diluncurkan lima tahun lalu (bahasa Inggris).
• Beta Info: Channel yang memberikan informasi tentang fitur-fitur baru Telegram sebelum resmi dirilis.
Dengan dukungan relawan dari berbagai negara, Telegram Info terus berkembang. Saat ini, lebih dari 40 channel dikelola dalam berbagai bahasa, seperti Rusia, Ukraina, Uzbek, Cina, Persia, Arab, Prancis, dan lainnya. Informasi lengkap tentang komunitas ini tersedia di TGStat.
Pencapaian yang Diraih:
Channel berbahasa Rusia telah melampaui 60.000 pelanggan, sementara channel berbahasa Inggris dan Prancis masing-masing mencatat lebih dari 20.000 pelanggan.
Tahun ini, Telegram Info juga telah menerbitkan sejumlah artikel FAQ di situs webnya, memberikan panduan dan informasi yang bermanfaat bagi pengguna.
Tim Telegram Info:
Tim inti Telegram Info adalah gabungan individu multinasional yang memiliki visi sama: menyebarkan informasi tentang Telegram dan membuat platform ini lebih mudah diakses. Masukan dari pengguna menjadi kunci dalam menghasilkan konten berkualitas tinggi.
Bagi Anda yang ingin berkontribusi, baik melalui pembuatan tool (alat), penulisan berita, desain sampul, atau menerjemahkan materi ke dalam bahasa lokal, Telegram Info membuka peluang kolaborasi. Anda dapat menghubungi kami melalui @infowritebot.
"Terima kasih atas dukungan Anda selama ini," ujar tim @tginfo dalam pernyataannya.
#anniversary@tginfoid