#python #kivy
#python #kivy
Вопрос:
Я хочу получить доступ к списку «цветов» в kv, чтобы изменить цвет фона в python. Я пытался получить доступ к цвету с помощью идентификатора, но это не сработало.
class DuesseldorfWindow(Screen):
def __init__(self, **kwargs):
Screen.__init__(self, **kwargs)
Clock.schedule_once(self.get_weather_data,0.5)
def get_weather_data(self,dt):
USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
# US english
LANGUAGE = "en-US,en;q=0.5"
url = "https://www.google.com/search?q=wetter düsseldorfamp;oq=wetter düsseamp;aqs=chrome.0.0l8.4109j1j7amp;sourceid=chromeamp;ie=UTF-8"
session = requests.Session()
session.headers['User-Agent'] = USER_AGENT
session.headers['Accept-Language'] = LANGUAGE
session.headers['Content-Language'] = LANGUAGE
html = session.get(url)
# create a new soup
soup = BeautifulSoup(html.text, "html.parser")
temperature = soup.find("span", attrs={"id": "wob_tm"}).text
day_and_time = soup.find("div", attrs={"id": "wob_dts"}).text
weather_condition = soup.find("span", attrs={"id": "wob_dc"}).text
time = day_and_time[8:15]
day = day_and_time[0:6]
#Here I wanna access the background color
Kv
<DuesseldorfWindow>:
name: "DueW"
colour : 0, 0.71372549, 1, 1
canvas.before:
Color:
rgba : self.colour
Rectangle:
pos: self.pos
size: self.size
Комментарии:
1. Простое использование
self.colour = [1,0,0,1]
не работает?
Ответ №1:
Вы можете использовать свойство group в canvas, как показано ниже:
<DuesseldorfWindow>:
name: "DueW"
colour : 0, 0.71372549, 1, 1
canvas.before:
Color:
group: 'color'
rgba : self.colour
Rectangle:
pos: self.pos
size: self.size
А затем в python вы можете получить цвет холста, как показано ниже:
self.canvas.before.get_group('color')[0].rgba