如何在 Kivy Listview 中格式化滚动条
How to format the scrollbar in Kivy Listview
我有一个 ListView,其中包含列表项的自定义按钮。我如何格式化滚动条使其始终可见(如果有东西要滚动......),使其更宽(10 pts 而不是默认的 2 pts)并给它不同的颜色?
DoScroll.py 文件:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.listview import ListItemButton
class ShowItems(BoxLayout):
def get_list(self):
self.results.item_strings = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
def show_capital(self, capital):
print capital
class CapitalButton(ListItemButton):
pass
class DoScrollApp(App):
pass
if __name__ == '__main__':
DoScrollApp().run()
这里是 DoScroll.kv 文件。
#: import DoScroll DoScroll
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
<CapitalButton>:
text_size: self.width - 50, None
halign: 'left'
valign: 'middle'
font_size: 16
on_press: app.root.show_capital(self.text)
ShowItems:
<ShowItems>:
results: results_list
orientation: "vertical"
BoxLayout:
height: "40dp"
size_hint_y: None
Button:
text: "Get the list"
on_press: root.get_list()
ListView:
id: results_list
adapter:
ListAdapter(data=[], args_converter=lambda row_index,
an_obj: {'text': an_obj,'size_hint_y': None,'height': 40}, cls=DoScroll.CapitalButton)
ListView
包含一个 ScrollView
,它又持有 GridView
持有列表项。相应的 kv
规则是这些(来自 listview.py
):
<ListView>:
container: container
ScrollView:
pos: root.pos
on_scroll_y: root._scroll(args[1])
do_scroll_x: False
GridLayout:
cols: 1
id: container
size_hint_y: None
ScrollView
具有属性 bar_width
、bar_color
、bar_inactive_color
。这些可以通过 lv.container.parent.bar_width
等访问,对于 lv = ListView()
。
我有一个 ListView,其中包含列表项的自定义按钮。我如何格式化滚动条使其始终可见(如果有东西要滚动......),使其更宽(10 pts 而不是默认的 2 pts)并给它不同的颜色?
DoScroll.py 文件:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.listview import ListItemButton
class ShowItems(BoxLayout):
def get_list(self):
self.results.item_strings = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
def show_capital(self, capital):
print capital
class CapitalButton(ListItemButton):
pass
class DoScrollApp(App):
pass
if __name__ == '__main__':
DoScrollApp().run()
这里是 DoScroll.kv 文件。
#: import DoScroll DoScroll
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
<CapitalButton>:
text_size: self.width - 50, None
halign: 'left'
valign: 'middle'
font_size: 16
on_press: app.root.show_capital(self.text)
ShowItems:
<ShowItems>:
results: results_list
orientation: "vertical"
BoxLayout:
height: "40dp"
size_hint_y: None
Button:
text: "Get the list"
on_press: root.get_list()
ListView:
id: results_list
adapter:
ListAdapter(data=[], args_converter=lambda row_index,
an_obj: {'text': an_obj,'size_hint_y': None,'height': 40}, cls=DoScroll.CapitalButton)
ListView
包含一个 ScrollView
,它又持有 GridView
持有列表项。相应的 kv
规则是这些(来自 listview.py
):
<ListView>:
container: container
ScrollView:
pos: root.pos
on_scroll_y: root._scroll(args[1])
do_scroll_x: False
GridLayout:
cols: 1
id: container
size_hint_y: None
ScrollView
具有属性 bar_width
、bar_color
、bar_inactive_color
。这些可以通过 lv.container.parent.bar_width
等访问,对于 lv = ListView()
。