有没有办法在父级(布局)上面添加一个小部件?

时间:2018-03-02 10:23:05

标签: python layout kivy kivy-language

嘿,我最近开始使用python / kivy编程。 我有一个基本问题,我找到的文件无法解决。

我想在我的根(ScreenLayout)上面添加一个自定义函数(InitiateGraph)。 在这个函数中,我正在使用matplotlib绘制图形,这是通过应用程序的调用生成的。它应该是这样的:

_ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  
|here should be the plotted graph from InitiateGraph|  
_ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  
_ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  
|  here should follow the GridLayout (ScreenLayout)   |  
_ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _  _ _ 

目前这两个街区是相反的。 请参阅以下简约示例。

Python的代码:

class ScreenLayout(GridLayout):

    def __init__(self, *args, **kwargs):
        super(ScreenLayout, self).__init__(*args, **kwargs)
        self.add_widget(self.InitiateGraph())

    def InitiateGraph(self):
        ...

class TestApp(App):

    def build(self):
        return ScreenLayout()

Test = TestApp()
Test.run()

Kivy代码:

<ScreenLayout>:
    rows: 3
    BoxLayout:
    BoxLayout:

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。

您可以使用 @Get @Options public String represent() { GetWebAccessLogAction getWebAccessLogAction = new GetWebAccessLogAction(new WebAccessLogDAO()); JSONArray webAccessLogs = getWebAccessLogAction.getWebAccessLogs(); return webAccessLogs.toString(); } 参数index将小部件放在ScreenLayout子项中的特定位置。但这很少是好方法,因为当你因其他原因更新布局时容易中断。

更好的方法是使用带有id的容器小部件,这样您就可以轻松地引用它并在其中添加小部件。

add_widget

然后

<ScreenLayout>:
    rows: 3
    BoxLayout:
        id: graph_container
    BoxLayout:
    BoxLayout: