Python 如何对齐listview标签?
我正在学习如何使用Kivy,我想知道如何在我构建的listview中对齐标签 默认情况下,标签居中,我希望将所有标签向左对齐 我的代码:Python 如何对齐listview标签?,python,kivy,Python,Kivy,我正在学习如何使用Kivy,我想知道如何在我构建的listview中对齐标签 默认情况下,标签居中,我希望将所有标签向左对齐 我的代码: from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.uix.listview import SimpleListAdapter from kivy.uix.listview import Li
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.listview import SimpleListAdapter
from kivy.uix.listview import ListView
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
class TestApp(App):
def build(self):
messages = ["a", "b"]
layout = BoxLayout(orientation='vertical')
btn1 = Button(text='Hello')
textinput = TextInput(text='Hello world', size_hint=(1, 0.1))
messages.append("sd")
simple_list_adapter = SimpleListAdapter(
data=messages,
cls=Label)
simple_list_adapter.cls
list_view = ListView(adapter=simple_list_adapter)
layout.add_widget(list_view)
layout.add_widget(textinput)
return layout
TestApp().run()
一个简单的解决方案是创建具有所需对齐方式的标签
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.listview import SimpleListAdapter
from kivy.uix.listview import ListView
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
class LeftLabel(Label):
def __init__(self, **kwargs):
super(LeftLabel, self).__init__(**kwargs)
# https://kivy.org/doc/stable/api-kivy.uix.label.html#text-alignment-and-wrapping
self.halign = "left"
self.bind(size=self.setter("text_size"))
class TestApp(App):
def build(self):
messages = ["a", "b"]
layout = BoxLayout(orientation="vertical")
btn1 = Button(text="Hello")
textinput = TextInput(text="Hello world", size_hint=(1, 0.1))
messages.append("sd")
simple_list_adapter = SimpleListAdapter(data=messages, cls=LeftLabel)
list_view = ListView(adapter=simple_list_adapter)
layout.add_widget(list_view)
layout.add_widget(textinput)
return layout
TestApp().run()
由于您从kivy起步,建议您学习RecycleView而不是ListView,因为后者是:
自版本1.10.0以来已弃用:ListView已弃用,请改用RecycleView
一个简单的解决方案是创建具有所需对齐方式的标签
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.listview import SimpleListAdapter
from kivy.uix.listview import ListView
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
class LeftLabel(Label):
def __init__(self, **kwargs):
super(LeftLabel, self).__init__(**kwargs)
# https://kivy.org/doc/stable/api-kivy.uix.label.html#text-alignment-and-wrapping
self.halign = "left"
self.bind(size=self.setter("text_size"))
class TestApp(App):
def build(self):
messages = ["a", "b"]
layout = BoxLayout(orientation="vertical")
btn1 = Button(text="Hello")
textinput = TextInput(text="Hello world", size_hint=(1, 0.1))
messages.append("sd")
simple_list_adapter = SimpleListAdapter(data=messages, cls=LeftLabel)
list_view = ListView(adapter=simple_list_adapter)
layout.add_widget(list_view)
layout.add_widget(textinput)
return layout
TestApp().run()
由于您从kivy起步,建议您学习RecycleView而不是ListView,因为后者是:
自版本1.10.0以来已弃用:ListView已弃用,请改用RecycleView