Когда разрабатываете свой 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
Wenn draußen die Kälte🥶 kommt, bringen wir den Sommer☀️ auf die Leinwand📺: das Komödiendrama „Erster Sommer” wird am 19. November um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🎞️ Der 15-jährige Sascha lebt in einer Kleinstadt an der Wolga, und dieser Sommer wird sein Leben verändern. Gemeinsam mit seinen Freunden startet er ein kleines Geschäft, um sich eine Sony PlayStation🎮 leisten zu können. Das Haus des Nachbarmädchens wird plötzlich zum Mittelpunkt seiner Aufmerksamkeit, und auf der Sommerdisco💃🏻 kommt es zur ersten handfesten Auseinandersetzung. Während er erwachsen wird, lernt Sascha den Wert anderer Leben kennen, erlebt Schmerz und Verlust und steht vor Entscheidungen, die alles andere als kindlich sind.
🗣️Der Film wird vom Produzenten Denis Kovalevsky vorgestellt.
FSK: 18+
📲Anmeldung ist erforderlich.
#kino#berlinevents#drama#komödie#sommer#film
Wenn draußen die Kälte🥶 kommt, bringen wir den Sommer☀️ auf die Leinwand📺: das Komödiendrama „Erster Sommer” wird am 19. November um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🎞️ Der 15-jährige Sascha lebt in einer Kleinstadt an der Wolga, und dieser Sommer wird sein Leben verändern. Gemeinsam mit seinen Freunden startet er ein kleines Geschäft, um sich eine Sony PlayStation🎮 leisten zu können. Das Haus des Nachbarmädchens wird plötzlich zum Mittelpunkt seiner Aufmerksamkeit, und auf der Sommerdisco💃🏻 kommt es zur ersten handfesten Auseinandersetzung. Während er erwachsen wird, lernt Sascha den Wert anderer Leben kennen, erlebt Schmerz und Verlust und steht vor Entscheidungen, die alles andere als kindlich sind.
🗣️Der Film wird vom Produzenten Denis Kovalevsky vorgestellt.
FSK: 18+
📲Anmeldung ist erforderlich.
#kino#berlinevents#drama#komödie#sommer#film
Am 20. Januar um 19:00 Uhr wird die Familienkomödie „Das Feld der Wunder“ in russischer Sprache gezeigt.📽️
🌞 Jeden Sommer versammelt sich eine Gruppe von Kindern in ihrem geheimen Versteck mitten zwischen den hohen Maisstängeln eines alten Ferienorts. Es kursiert die Legende von den Schätzen einer Fürstin, die vor Napoleon geflohen ist, und der Traum vom Abenteuer wird Wirklichkeit, als die neue Schülerin Katja auftaucht: ihr Vater, ein Geschäftsmann, plant, das Feld zu kaufen, um dort einen Baumarkt zu errichten. Die Kinder schließen sich zusammen, um ihren heiligen Ort zu verteidigen.
Meldet euch an und kommt ins Filmtheater im Russischen Haus vorbei!🫶🏻
#kino#komödie#familienfilm#sommer#jugend#kindern
DasKrimidrama „Der Sommer kommt“, das bei großen Filmfestivals mehrmalsausgezeichnet wurde, wird am 29. Januar um 19:00 Uhr im Russischen Haus in Berlin gezeigt!
🎬 Der Film erzählt die Geschichte eines jungen Mannes namens Nikita, der aus der Provinz nach Moskau kommt. Er mietet ein Zimmer, lernt seine Mitbewohnerin kennen und verstrickt sich in eine komplizierte Beziehung. Durch einen Freund erfährt er von einem reichen Typen namens Dan. Der Film greift Motive aus der Welt des Verbrechens, moralische Entscheidungen und deren Auswirkungen auf das Leben der Protagonisten in der Großstadt auf. Die Geschichte spielt vor dem Hintergrund sozialer Unterschiede und innerer Widersprüche, die für das moderne Stadtleben charakteristisch sind.
🎞️Die Vorführung findet im Rahmen des Internationalen Filmfestivals ARCTIC OPEN in russischer Sprache mit englischen Untertiteln statt.
🖇️ FSK: 18+
📲Anmeldung
#filmfestival#kino#drama#krimi#sommer#berlinkino
Am 20. Januar um 19:00 Uhr wird die Familienkomödie „Das Feld der Wunder“ in russischer Sprache gezeigt.📽️
🌞 Jeden Sommer versammelt sich eine Gruppe von Kindern in ihrem geheimen Versteck mitten zwischen den hohen Maisstängeln eines alten Ferienorts. Es kursiert die Legende von den Schätzen einer Fürstin, die vor Napoleon geflohen ist, und der Traum vom Abenteuer wird Wirklichkeit, als die neue Schülerin Katja auftaucht: ihr Vater, ein Geschäftsmann, plant, das Feld zu kaufen, um dort einen Baumarkt zu errichten. Die Kinder schließen sich zusammen, um ihren heiligen Ort zu verteidigen.
Meldet euch an und kommt ins Filmtheater im Russischen Haus vorbei!🫶🏻
#kino#komödie#familienfilm#sommer#jugend#kindern