2015-01-31 3 views
0

Я использую pydev на затмении luna. Мой файл киловольт выглядит следующим образом:Ярлык не выровнен правильно

<LoginForm>: 
    userid: userid 
    password: password 

    size_hint_x: 0.5 
    size_hint_y: None 
    height: 200 

    orientation: 'vertical' 
    pos_hint: {'center_x': 0.5,'center_y':0.5} 

    minimum_height: 100 
    minimum_width: 100 

    #User ID 
    Label: 
     text: 'User ID' 
     font_size: 20 
     size_hint_x: None 

    TextInput: 
     id: userid 
     font_size: 20 


    #User PW 
    Label: 
     text: 'Password' 
     font_size: 20 

    TextInput: 
     id: password 
     password: True 
     font_size: 20 

    Button: 
     text: 'Login' 

Мой питон код:

from kivy.app import App; 
from forms.login import LoginForm; 
from kivy.core.window import Window 
from kivy.uix.boxlayout import BoxLayout 

class LoginForm(BoxLayout): 

    def __init__(self, **kwargs): 
     super(LoginForm, self).__init__(**kwargs) 

class StartApp(App): 
    def build(self): 
     Window.size = (480, 800) 
     return LoginForm() 

     #return StartApp(); 

if __name__ == '__main__': 
    StartApp().run() 

Выход: enter image description here

код работает правильно, однако, моя проблема в том, что есть еще некоторые разрыв слева, который отсутствует для других элементов управления. Я хочу, чтобы User ID был полностью выровнен по левому краю (в приведенном выше рисунке он выровнен по левому краю, но некоторое пространство все еще осталось).

Не могли бы вы посоветовать или исправить меня, где я ошибся?

ответ

2

Ярлык не выровнен по левому краю, потому что вы на самом деле не установили его, отключив size_hint_x, он просто использует ширину по умолчанию 100 пикселей, а текст появляется в центре.

У вас есть два варианта объявления метки.

Label: 
     text: 'User ID' 
     font_size: 20 
     size_hint_x: None 
     width: self.texture_size[0] 

Это установит ширину метки для точного размера текстуры, содержащей изображение текста. Тем не менее, я думаю, что это, вероятно, предпочтительнее сделать следующее:

Label: 
     text: 'User ID' 
     font_size: 20 
     text_size: self.size 
     halign: 'left' 
     valign: 'middle' 

Таким образом, вместо того, баловаться с размером виджета/позиции, которую вы установите text_size (это управляет ограничительную рамку текста текстуры) и встроенный параметры выравнивания текста заботятся об остальном.

В этом случае результаты должны быть одинаковыми, если не идентичны.

Смежные вопросы