在第一个屏幕中单击按钮后,我试图在第二个屏幕中显示图。 这是我尝试过的代码。 进口猕猴桃 从kivy.app导入App 从kivy.uix.label导入Label 从kivy.uix.gridlayout导入GridLayout 从kivy.uix.textinput导入TextInput 从kivy.uix.button导入Button 从kivy.uix.boxlayout导入BoxLayout 从kivy.properties导入ObjectProperty 从kivy.lang导入生成器 从kivy.uix.screenmanager导入ScreenManager,屏幕 从kivy.garden.matplotlib.backend_kivyagg导入FigureCanvasKivyAgg 从kivy.uix.widget导入小部件 从熊猫导入read_excel 导入matplotlib.pyplot作为plt
onDelete()
但是我遇到错误,说plt.plot([1, 23, 2, 4])
plt.ylabel('some numbers')
class MainWindow(Screen):
def btn(self):
print("name: ",self.name2.text)
self.ids.destination.add_widget(FigureCanvasKivyAgg(plt.gcf()))
class SecondWindow(Screen):
pass
class WindowManager(ScreenManager):
pass
kv = Builder.load_file("my.kv")
class MyMainApp(App):
def build(self):
return kv
if __name__=="__main__":
MyMainApp().run()
#:kivy 1.9.1
WindowManager:
MainWindow:
SecondWindow:
<MainWindow>:
name: "main"
name2: name2
GridLayout:
cols:1
size: root.width, root.height
GridLayout:
cols:2
Label:
text:"name: "
TextInput:
id: name
multinline:False
Label:
text:"name2: "
TextInput:
id: name2
multinline:False
Button:
text:"Submit"
on_release:
root.btn()
app.root.current = "second"
root.manager.transition.direction = "left"
<SecondWindow>:
name: "second"
GridLayout:
cols:1
BoxLayout:
id: destination
Button:
text: "Go Back"
on_release:
app.root.current = "main"
root.manager.transition.direction = "right"
,我不知道这是什么意思。请帮助我。
答案 0 :(得分:1)
问题是您正在尝试使用在其他id
中定义的Screen
。 destination
是在SecondWindow
中定义的,因此MainWindow
对此一无所知。因此,您可以像这样通过id
来引用SecondWindow
:
class MainWindow(Screen):
def btn(self):
print("name: ",self.name2.text)
self.manager.get_screen('second').ids.destination.add_widget(FigureCanvasKivyAgg(plt.gcf()))