Próbuję opracować aplikację e-mail w Kivy, w zasadzie po prostu jako ćwiczenie do nauki w i poza ramami ... Próbuję stworzyć początkowe okno i osiągnąłem trochę potknięcie się! Chodzi o to, że po prostu wyświetli listę e-maili w Odebranych, podobnie jak każda podstawowa aplikacja e-mail na urządzeniu mobilnym.Problem wyrównania tekstu przycisku Kivy
Problem polega na tym, że nie wiem, w jaki sposób uzyskać tekst każdego elementu listy (który jest po prostu przyciskiem), aby poprawnie wyrównać. Użycie przycisku "halign =" left "" w moim przycisku spowoduje wyrównanie tekstu w lewo, ale tylko względem każdego przycisku; nadal znajduje się w środku każdego przycisku.
Moja aktualna aplikacja jest trochę za duża, aby opublikować, więc jest to szybki i brudny przykład, który zrobiłem z przykładowego Kivy. (Zdaję sobie sprawę, że ten kod nie jest doskonały ... jak mówiłem szybko i brudno dla przykładów sake ... to działa!) Jak widać, dwa rzędy tekstu na każdym przycisku wyrównują się ze sobą, ale nie wszystkie są ogólnie dopasowane. Czy ktoś może zasugerować, co powinienem zrobić, aby wyrównać cały tekst, powiedzmy, 10 pikseli po lewej stronie każdego przycisku? Znalazłem jeden względnie brzmiącą rzecz na StackOverflow, ale tak naprawdę nie odpowiedział na pytanie, na przykład, wydawało się, że chodzi bardziej o użycie obrazów na przyciskach. Jestem nowy w Kivy, ale przeczytałem samouczki i dokumentację, a także obszernie przeszukałem Google - więc każda pomoc będzie bardzo ceniona!
import kivy
kivy.require('1.0.8')
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.uix.gridlayout import GridLayout
import random
class ScrollViewApp(App):
def build(self):
# create a default grid layout with custom width/height
layout = GridLayout(cols=1, spacing=10, size_hint=(None, None),
width=Window.width)
# when we add children to the grid layout, its size doesn't change at
# all. we need to ensure that the height will be the minimum required to
# contain all the childs. (otherwise, we'll child outside the bounding
# box of the childs)
layout.bind(minimum_height=layout.setter('height'))
# add button into that grid
for i in range(30):
btn = Button(text=str(i * random.random()) + '\n' + str(i * random.random()),
size=(300, 40),
size_hint=(None, None),
halign='left')
layout.add_widget(btn)
# create a scroll view, with a size < size of the grid
root = ScrollView(size_hint=(None, None))
root.size = (Window.width, Window.height)
root.center = Window.center
root.add_widget(layout)
return root
if __name__ == '__main__':
ScrollViewApp().run()
Ponadto, mając do obejrzenia text_align przykład pomoże. – Tshirtman