首页 > 解决方案 > 布局内的布局

问题描述

我试图弄清楚如何使用 Kivy 制作应用程序。由按钮组成的日历,但具有多种布局,因此我可以根据自己的喜好组织所有内容。所有这些对我来说都很新鲜,我不知道如何正确地进行布局。在某些视频中,def build(self) 返回一个布局或一个小部件或一个标签,如果我想返回多个布局怎么办?我是否需要在主布局中创建这些布局以便它们全部显示?如果我想创建由按钮组成的日历,但由于一个月有不同的日子,我需要在 .py 文件而不是 .kv 中创建它,但如果我想弄乱我的同一个 FloatLayout 怎么办?日历按钮,在 .kv 文件中,并使用多个布局来组织其他内容?如果我清楚我的问题,我不会。

我看过几个视频,但它们真的很简化。

主文件

import kivy
import calendar

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.widget import Widget

class CustomFloat(GridLayout):
    def __init__(self,**kwargs):
        super(CustomFloat,self).__init__(**kwargs)
        self.cols = 7
        self.size_hint_y = 0.3
        self.size_hint_x = 0.9
        self.pos_hint = {"top": 0.9, "x": 0.05}
        self.c  = calendar.monthcalendar(2015,5)
        for i in self.c:
            for j in i:
                if j == 0:
                    self.add_widget(Button(text = '{j}'.format(j='')))
                else:
                    self.add_widget(Button(text = '{j}'.format(j=j)))

        def on_release(self):
            pass

class FloatingApp(App):

    def build(self):
        return CustomFloat()


if __name__ == "__main__":
    FloatingApp().run()

我的代码是我想做的(一个由按钮组成的日历),但我希望该布局在一个更大的布局中,这样我就可以为每天的任务或可以更改月份的按钮等制作多个布局等。如果有人知道如何将 main.py 上的布局链接到 .kv 文件中的布局(这样我可以在 .kv 内部调整和/或组织它),请告诉我。

编辑:如果我创建另一个布局,但这次是在 .kv 文件上,它需要一个按钮的大小并将自己放入我在 main.py 中创建的布局中。为什么?

标签: pythonkivy

解决方案


推荐阅读