0
我在kivy中使用multiTab。如何放大滚动条,使滚动条可以通过鼠标移动(up_down)。我使用BoxLayout和RecycleView。下面的代码与网格布局是工作,而不是在BoxLayout的:如何最大化Kivy python中的滚动条?
layout.bind(minimum_height=layout.setter('height'))
我在kivy中使用multiTab。如何放大滚动条,使滚动条可以通过鼠标移动(up_down)。我使用BoxLayout和RecycleView。下面的代码与网格布局是工作,而不是在BoxLayout的:如何最大化Kivy python中的滚动条?
layout.bind(minimum_height=layout.setter('height'))
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.uix.label import Label
Builder.load_string("""
<ScrollSlider>:
ScrollView:
id: scrlvw
bar_width: 0
GridLayout:
id: grid
size_hint_y:None
cols:1
height: self.minimum_height
scroll_y: slider.value
on_touch_move: slider.value = self.scroll_y
Slider:
size_hint_x: None
width: root.width*0.2
id: slider
min: 0
max: 1
orientation: 'vertical'
value: scrlvw.scroll_y
on_value: scrlvw.scroll_y = self.value
""")
class ScrollSlider(BoxLayout):
def custom_add(self, widget):
self.ids.grid.add_widget(widget)
class MyApp(App):
def build(self):
scrollslider = ScrollSlider()
for i in range(1, 100):
scrollslider.custom_add(Label(text=str(i), height=100, size_hint_y=None))
return scrollslider
if __name__ == '__main__':
MyApp().run()
您需要使用custom_add
添加小部件在ScrollSlider
或他们kivy添加到GridLayout
。
我从链接@Edvardas Dlugauskas提供了一些灵感。
您提供的代码不适用于BoxLayout
,因为BoxLayout
只取其父级的大小。为了能够滚动,你需要添加一些ScrollView
,这比ScrollView
本身大。
你实际上不能拖动那个滚动条来滚动,你需要一个单独的滑块来做到这一点。 –
那么当我使用RecycleView和BoxLayout时该怎么做?你能举一些例子吗?谢谢。 – MXDel
我想我使用这个例子https://github.com/kivy/kivy/wiki/A-draggable-scrollbar-using-a-slider当我自己做,试试看。 –