Согласно Kivy Doc , я могу настроить внешний вид приложения kivy, создав локальный файл style.kv, который будет использоваться вместо стандартного.Поэтому я отредактировал исходный файл, изменив поведение виджета «Кнопка» следующим образом:
<-Button,-ToggleButton>:
canvas:
Color:
rgba: [1, 0, 0, 1] if self.state == 'normal' else [0, 0, 1, 1]
Rectangle:
pos: self.pos
size: self.size
Color:
rgba: 1, 1, 1, 1
Rectangle:
texture: self.texture
size: self.texture_size
pos: int(self.center_x - self.texture_size[0] / 2.), int(self.center_y - self.texture_size[1] / 2.)
Я надеялся, что фон кнопок станет красным и при нажатии изменится на синий.Но ничего не происходит, и поведение по умолчанию было применено.
Это содержимое моего основного файла
from os.path import abspath, dirname, join
from kivy.app import App
from kivy.resources import resource_add_path, resource_find
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
class MainLayout(BoxLayout):
def __init__(self, **kwargs):
super(MainLayout, self).__init__(**kwargs)
self.add_widget(Button(text="Button1"))
self.add_widget(Button(text="Button2"))
class MainApp(App):
def build(self):
return MainLayout()
if __name__ == '__main__':
res_path = join(dirname(abspath(__file__)), "custom")
resource_add_path(res_path)
print("find ", resource_find("data/style.kv"))
MainApp().run()
Во время выполнения локальный путь style.kv хорошо печатается.
Вся помощь очень ценится!