Я сделал две кнопки, которые имеют одинаковый путь к функции.Работает только одна из кнопок.Обе кнопки должны изменить lines
в circle
.
Я читал в другом посте, что мне может понадобиться «связать» два класса вместе, чтобы они могли «разговаривать».Если у кого-то есть понимание, пожалуйста, сообщите мне!
Кроме того, почему функция print
работает на обеих кнопках, но не на остальных?
Py:
from kivy.app import App
from kivy.properties import ListProperty
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
class Screen1(Screen):
pass
class SM(ScreenManager):
pass
class ButtonX(Button):
def increaseX(self):
TestApp().increase()
class TestApp(App):
random_num_list = ListProperty([20, 40, 80])
def increase(self):
print(str(self.random_num_list))
self.random_num_list = [90, 140, 220]
def build(self):
global sm
sm = SM()
return sm
if __name__ == '__main__':
TestApp().run()
Kv:
<Screen1>:
FloatLayout:
Button:
pos_hint: {'center_x': .5, 'center_y': .5}
canvas:
Color:
rgba: 1,1,1,1
Line:
width: 5
circle: self.center_x, self.center_y, min(self.width, self.height) / 4, 0, app.random_num_list[0]
Color:
rgba: .8,.1,.8,1
Line:
width: 5
circle: self.center_x, self.center_y, min(self.width, self.height) / 4, app.random_num_list[0], app.random_num_list[1]
Color:
rgba: .6,.6,1,1
Line:
width: 5
circle: self.center_x, self.center_y, min(self.width, self.height) / 4, app.random_num_list[1], app.random_num_list[2]
Color:
rgba: 1,.1,.4,1
Line:
width: 5
circle: self.center_x, self.center_y, min(self.width, self.height) / 4, app.random_num_list[2], 360
ButtonX:
pos_hint: {'center_x': .5, 'center_y': .55}
size_hint: .2, .1
text: 'Try first:\ndoesn\'t works'
on_press: self.increaseX()
ButtonX:
pos_hint: {'center_x': .5, 'center_y': .45}
size_hint: .2, .1
text: 'Try second:\nworks'
on_press: app.increase()
<SM>:
Screen1: