Error: [$compile:tpload] Failed to load template: xyz.html (HTTP status: 404 Not Found)
может быть вызвано установкой ниже в web.config
Это приводит к блокировке любого прямого запроса к файлу в каталоге Views. Угловой запрос xhr к этому файлу блокируется этим.
Прокомментируйте это и посмотрите, все ли работает. Используйте это с осторожностью, так как он позволяет получить доступ к вашим файлам.
Вы также можете проверить этот url для получения дополнительных ответов: Ошибка: $ compile: tpload не удалось загрузить шаблон Http status: 404
Проблема в том, что вы рисуете несколько раз в разных местах, именно в функции changeBG, вместо этого вам просто нужно рисовать в одном месте и установить цвет фона как свойство, чтобы при изменении этого значения метка была перекрашена.
Другая ошибка заключается в том, что вы создаете контейнер, который вы не используете в .kv.
В случае цикла while это можно упростить с помощью цикла for.
*. Py
import random
import kivy
kivy.require("1.10.1")
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.config import Config
Config.set('graphics', 'width', '400')
Config.set('graphics', 'height', '400')
class Container(FloatLayout):
pass
class ColorLabel(Label):
pass
class Main(App):
def build(self):
Builder.load_file("EveryImage.kv")
the_grid = GridLayout(cols=10, spacing=1)
for _ in range(100):
newLabel = ColorLabel()
the_grid.add_widget(newLabel)
if random.choice([True, False]):
newLabel.bg_color = [0,0,0,1]
root = Container()
root.add_widget(the_grid)
return root
# Keep everything below this last!
if __name__ == '__main__':
Main().run()
*. Кв
#Container holds all the other layouts
<Container>:
id: contain
canvas.before:
Color:
rgba: 0,0,0.5,1 #blue, just for the grid
Rectangle:
pos: self.pos
size: self.size
<ColorLabel>:
bg_color: 1, 1, 1, 1
canvas.before:
Color:
rgba: self.bg_color # white
Rectangle:
pos: self.pos
size: self.size