问题描述
我在猕猴桃中使用multiTab.如何放大滚动条,以便可以通过鼠标移动(上移或下移)滚动条.我正在使用BoxLayout和RecycleView.下面的代码适用于gridLayout,但不适用于BoxLayout:
I am using multiTab in kivy. How to enlarge the scrollbar so that scrollbar can be moved(up_down) by mouse. I am using BoxLayout and RecycleView. The code below was working with gridLayout, but not in BoxLayout:
layout.bind(minimum_height=layout.setter('height'))
推荐答案
这是一个如何扩展ScrollView以获得可拖动滑块的示例.
Here is an example of how to extend ScrollView to also get a dragable slider.
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
中.
You need to use the custom_add
to add widgets in the ScrollSlider
or add them to the GridLayout
in kivy.
我从提供的@Edvardas Dlugauskas链接中获得了一些启发.
I took some inspiration from the link @Edvardas Dlugauskas provided.
您提供的代码不适用于BoxLayout
,因为BoxLayout
仅占用其父级的大小.为了能够滚动,您需要将sth添加到大于ScrollView
本身的ScrollView
中.
The code you provided does not work with BoxLayout
because BoxLayout
just takes the size of its parent. To be able to scroll you need to add sth into ScrollView
which is larger than the ScrollView
itself.
这篇关于如何在Kivy python中最大化滚动条?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!