Kivy:无法在 Scrollview 中正常工作 scroll_to
Kivy: cant get scroll_to in Scrollview working
尝试使用这样的代码,我可以让 Scrollview 正常工作,但 scroll_to() 函数什么都不做。视图仍然从顶部位置开始。
pixperhour = 60
tagHL = []
dayview = ScrollView(size_hint=(1,1))
test = BoxLayout(size_hint=(1,None), height=24*pixperhour, orientation='vertical')
dayview.add_widget(test)
for i in range(24):
tagHL.append(Label())
test.add_widget(tagHL[i])
tagHL[i].text = "Label "+str(i)
tagHL[i].color = (1, 1, 1)
tagHL[i].font_size = 30
dayview.scroll_to(tagHL[12])
我希望滚动视图的视口发生变化,以便标签 tagHL[12] 变得可见。是我做错了还是功能有问题?
为了让它在小部件创建完成后立即发生,您可以将其安排在某个时间(或之前)之后(或之前),因为 Clock.schedule_once(lambda *args : dayview.scroll_to(tagHL[12]),dt)
其中 dt
可以为 -1、0 或任何正值。
附带说明一下,如果您将 tagHL
用作小部件容器,那么最好使用 BoxLayout
、test
的 children
属性.所以,就像,
for i in range(24):
self.lbl = Label(
text=f"Label {i}",
color = [1, 1, 1],
font_size = 30,
)
test.add_widget(self.lbl)
Clock.schedule_once(lambda *x : dayview.scroll_to(test.children[::-1][12]))
尝试使用这样的代码,我可以让 Scrollview 正常工作,但 scroll_to() 函数什么都不做。视图仍然从顶部位置开始。
pixperhour = 60
tagHL = []
dayview = ScrollView(size_hint=(1,1))
test = BoxLayout(size_hint=(1,None), height=24*pixperhour, orientation='vertical')
dayview.add_widget(test)
for i in range(24):
tagHL.append(Label())
test.add_widget(tagHL[i])
tagHL[i].text = "Label "+str(i)
tagHL[i].color = (1, 1, 1)
tagHL[i].font_size = 30
dayview.scroll_to(tagHL[12])
我希望滚动视图的视口发生变化,以便标签 tagHL[12] 变得可见。是我做错了还是功能有问题?
为了让它在小部件创建完成后立即发生,您可以将其安排在某个时间(或之前)之后(或之前),因为 Clock.schedule_once(lambda *args : dayview.scroll_to(tagHL[12]),dt)
其中 dt
可以为 -1、0 或任何正值。
附带说明一下,如果您将 tagHL
用作小部件容器,那么最好使用 BoxLayout
、test
的 children
属性.所以,就像,
for i in range(24):
self.lbl = Label(
text=f"Label {i}",
color = [1, 1, 1],
font_size = 30,
)
test.add_widget(self.lbl)
Clock.schedule_once(lambda *x : dayview.scroll_to(test.children[::-1][12]))