【发布时间】:2019-09-22 11:30:56
【问题描述】:
我是第一次使用 Kivy,我对小部件所需的不同类以及如何访问它们的变量感到有些困惑。我有一个主模块,我从中启动另一个包含 Kivy 的模块。然后我试图从 on_touch 方法中检索点列表。
主模块:
if __name__ == '__main__':
global graphInput
graphInput=graphInputKivy.GraphInputKivyApp()
graphInput.run()
graphInput.graphListOfXY = graphInput.canvasDrawing.pointsXY
print(graphInput.graphListOfXY)
“Kivy”模块:
class CanvasDrawing(Widget):
pointsXY=[]
def on_touch_down(self, touch):
with self.canvas:
Color(1, 1, 0)
touch.ud['line'] = Line(points=(touch.x, touch.y))
self.pointsXY=touch.ud['line'].points
def on_touch_move(self, touch):
touch.ud['line'].points += [touch.x, touch.y]
self.pointsXY+= [touch.x, touch.y]
class GraphInputKivyApp(App):
graphListOfXY=[]
def build(self):
layout = Widget()
self.canvasDrawing=CanvasDrawing()
clearCanvasButton = Button(text='Clear')
clearCanvasButton.bind(on_release=self.clear_canvas)
layout.add_widget(self.canvasDrawing)
layout.add_widget(clearCanvasButton)
return layout
def clear_canvas(self, obj):
self.canvasDrawing.canvas.clear()
if __name__ == '__main__':
GraphInputKivyApp().run()
我可以使用 graphInput.canvasDrawing.pointsXY 从 on_touch_down 方法(当我关闭 Kivy 窗口时)访问点列表,但是在调用 on_touch 方法后如何更新 graphInput.graphListOfXY?
谢谢,
【问题讨论】: