当尝试在kivy中创建变量列时,只会显示一列

2024-05-13 23:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试创建一个week视图,每个week都有一个自己的列,该列的值的数目可变,但不知何故,值最多的行是唯一出现的行。我做错什么了?你知道吗

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button


class TestApp(App):
    def build(self):
        print("run main")
        weeklyView = GridLayout(cols=7)
        weeklyTasks= [[],[1,2,3,4,5],[1,2,3,4,5,6,7,8,9,10,11,12,13],[],[1,2,3,4,5],[1,2,3],[]]
        for dayOfWeek in range(0,7):
            print(dayOfWeek)
            filteredTasks= weeklyTasks[dayOfWeek]
            dayLayout = GridLayout(cols = 1,row_force_default=True, row_default_height=100, size_hint_y=None);
            dayLayout.bind(minimum_height=dayLayout.setter('height'))
            header = Button(text='day')
            print('add header')
            dayLayout.add_widget(header)
            for task in filteredTasks:
                label = Button(text= str(task))
                print(task)
                label.text_size = label.size
                dayLayout.add_widget(label)
            weeklyView.add_widget(dayLayout)
        mainLayout = BoxLayout()
        mainLayout.add_widget(weeklyView)
        return mainLayout

if __name__ == '__main__':

    TestApp().run()

它看起来是这样的: enter image description here


Tags: fromimportaddsizebuttonwidgetlabelprint
1条回答
网友
1楼 · 发布于 2024-05-13 23:25:46

问题是由以下线路引起的:

dayLayout.bind(minimum_height=dayLayout.setter('height'))

删除它,您将得到以下内容:

enter image description here

相关问题 更多 >