Когда разрабатываете свой 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
‼️💻The Gardiyum hacking group claimed responsibility for cyber attacks on three major institutions in Bahrain through three separate statements.
🔻 According to the group's claims, over the past 24 hours, operations were carried out against the Khaleeji Bank, the Bahrain Stock Exchange, and Gulf Air airlines, resulting in the systems of these entities being rendered inaccessible for consecutive hours.
🔻 Following these attacks, widespread disruption in service delivery occurred, which, according to Gardiyum, has led to significant damage and extensive dissatisfaction.
#Bahrain
🇧🇭‼️The Public Prosecution of the Al Khalifa regime in Bahrain is demanding the death penalty for who took photos from restricted areas after Iranian attacks!
🔺This authority has accused the detainees of "great treason."
🔺The Ministry of Interior of the Al Khalifa regime arrested 12 Bahraini citizens on charges of filming and sharing videos related to the Iranian armed forces' attacks on U.S. military sites.
#Bahrain
#Iran, #Bahrain: Il Ministero dell'Interno del Bahrain ha annunciato il divieto di manifestazioni e assembramenti in luoghi pubblici per motivi di sicurezza relativi al conflitto scaturitosi nel Golfo.
🇧🇭⛔️ The anti-Iran draft resolution proposed by Bahrain was not adopted
🔹The UN Security Council rejected Bahrain's anti-Iran draft resolution on reopening the Strait of Hormuz, with Russia and China casting vetoes.
🔺 The Bahraini draft resolution initially emphasized the use of all necessary means to reopen the Strait of Hormuz—implying military action—and later, after this clause was removed, focused on defensive and proportionate efforts to ensure maritime security. However, Russia and China used their veto power to block its adoption.
➡️ The representatives of Pakistan and Colombia also refrained from participating in the vote.
#Iran#Bahrain
🇧🇭‼️Seyyed Mohammad al-Mousawi, a Bahraini citizen, was martyred today due to injuries sustained from torture in the prison of the Al Khalifa regime. In the released video, the effects of torture and signs of beating are clearly visible on his face and various parts of his body, and evidence of electric shock is also apparent on his body.
— The martyr was from the Al-Muharraq region and was the son of Seyyed Mohsen al-Mousawi, a cleric from the area, who had previously been imprisoned by the Bahraini regime for over 12 years and was released in 2024 on the occasion of Eid; however, he was recently rearrested by the regime.
➡️ Today, Bahrainis gathered in front the family home of the martyr Seyyed Mohammad al-Mousawi and held a funeral procession for his body while chanting slogans pledging covenant with the martyr.
✍️The Al Khalifa regime has recently arrested and imprisoned a number of Bahraini citizens on false charges of cooperating with Iran or photographing the sites of attacks. The deep-rooted rancor and enmity of the Al Khalifa regime toward Iran and Bahrain’s Shia community are the main reasons behind the arrest and killing of innocent Bahraini citizens and the inhumane actions taken against them.
✍️ Following the heavy strikes by Iran’s armed forces against American bases in the country, Bahrain is on the verge of another popular uprising against the Al Khalifa regime. With the support of Iran and the Shia religious authority, the people can overthrow the puppet Al Khalifa regime.
#Iran#Bahrain
🇮🇷#Iran - 🇧🇭#Bahrain: Footage circulating on Iranian channels show the aftermath of an Iranian missile that has struck Bahrain's Petrolum Company in Sitra moments ago.
🇮🇷#Iran - 🇧🇭#Bahrain: Footage showing an Iranian drone hitting a high-rise building in Bahrain, Manama, earlier today.
(via @Osint613 on X & @theleaflet)