TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #62 · 4 апр.

Когда разрабатываете свой 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #freepeoplefirst

当前筛选 #freepeoplefirst清除筛选

Поддержите нашу кампанию в соц. сетях! Мы, антивоенные активисты, правозащитники, все, кто выступает против войны, в свете приближающейся встречи президента США Дональда Трампа и Владимира Путина, опасаемся, что эта встреча может привести к заключению тактического краткосрочного соглашения, которое может нанести непоправимый ущерб Украине, Европе и международной безопасности, а судьбы людей, находящихся в плену, не станут приоритетом соглашения сторон. Мы хотим привлечь внимание к жизни всех и каждого незаконнозадержанного – украинских гражданских, депортированных украинских детей, украинских военнопленных и российских политзаключенных, оказавшихся в заключении за свою антивоенную позицию. Мы приглашаем вас присоединиться к нашему флешмобу, чтобы вернуть внимание к жизням людей и требовать безусловного освобождения всех узников этой войны. Напишите Free people first на ладони вашей руки и выложите фотографию в социальные сети. Присылайте ваши фото в бот t.me/People1rst_bot. ————— Підтримайте нашу кампанію в соцмережах! Ми, антивоєнні активісти, правозахисники та всі, хто виступає проти війни, з огляду на майбутню зустріч президента США Дональда Трампа та Володимира Путіна, переймаємося, що ця зустріч може призвести до укладення тактичної короткострокової угоди, яка може завдати непоправної шкоди Україні, Європі та міжнародній безпеці, а доля полонених не буде пріоритетом для сторін. Ми хочемо привернути увагу до життя кожного й кожної з числа незаконно поневолених — українських цивільних осіб, депортованих українських дітей, українських військовополонених та політичних в'язнів, які були ув'язнені за свою антивоєнну позицію. Ми запрошуємо вас приєднатися до нашого флешмобу, щоб привернути увагу до життя людей і вимагати безумовного звільнення всіх бранців російської війни в Україні. Напишіть Free people first на долоні своєї руки та викладіть фото в соціальні мережі. Надсилайте свої фото в бот t.me/People1rst_bot. ————— Support our campaign in social media We, anti-war activists, human rights defenders, and all those who oppose war, in light of the upcoming meeting between US President Donald Trump and Vladimir Putin, fear that this meeting could lead to a tactical short-term agreement that could cause irreparable damage to Ukraine, Europe and international security, and that the fate of those held captive will not be a priority for the parties to the agreement. We want to draw attention to the lives of each and every one of those illegally detained — Ukrainian civilians, deported Ukrainian children, Ukrainian prisoners of war and Russian political prisoners who have been imprisoned for their anti-war stance. We invite you to join our flashmob to draw attention back to people's lives and demand the unconditional release of all prisoners of this war. Write Free people first on the palm of your hand and post a photo on social media. Send your photo to our bot t.me/People1rst_bot. #People1st#BringPeopleHomeFirst#ЛюдиПревышеВсего#PeopleAreNotNegotiable#PeopleAreKey#ЛюдиKлючові#FreePeopleFirst#FreeThemAll