KIVY Текст внутри ярлыка - PullRequest
       12

KIVY Текст внутри ярлыка

0 голосов
/ 12 апреля 2020

Попытка поместить текст в прямоугольник. Я даже попробовал решение, данное здесь . Я хочу, чтобы текст был внутри прямоугольника. Это должно сохраняться, даже если я изменю размер окна, пожалуйста. Когда я добавляю Actor_widget, я все еще хочу продолжить формат pos_hint и size_hint. Любая идея, пожалуйста ..

from kivy.uix.label import Label
from kivy.uix.relativelayout import RelativeLayout
from kivy.properties import ListProperty
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.scatter import Scatter
from kivy.core.window import Window

Window.clearcolor = (1, 1, 1, 1)
Window.size = (800, 600)

kv = '''
<Actor>:
    canvas:
        PushMatrix
        Color:
            rgba: 0,1,0,.8
        Rectangle:
            id: _rect_
            size: self.width, self.height/12
            pos: 0, 11 * (self.height / 12)
        Line:
            points: self.width/2, 11 * self.height/12, self.width/2, 0
            width:2
        PopMatrix
    Label:
        id: _actr_lbl
        text: 'Hello World'
        markup: True
        color: 0,0,0,1
        pos: 0, 11 * self.height/12
        halign: 'center'
'''

Builder.load_string(kv)

class Actor(Scatter):
    def __init__(self, **kwargs) :
        super(Actor, self).__init__(**kwargs)

class TestApp(App):
    def build(self):
        layout = RelativeLayout()
        layout.add_widget(Actor(pos_hint = {'center_x':0.5, 'top':0.95}, size_hint = (0.2, 1)))
        return layout

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

1 Ответ

1 голос
/ 12 апреля 2020

Я думаю, что вы можете достичь 1013 * того, что вы хотите, немного подкорректировав kv для Label:

Label:
    id: _actr_lbl
    text: 'Hello World'
    markup: True
    color: 0,0,0,1
    size_hint: None, None
    size: root.width, root.height/12
    pos: 0, 11 * root.height/12
    halign: 'center'

Добавление size_hint: None, None позволяет size быть эффективным. И ссылка root для size и pos info сохраняет размер Label в правильном положении.

...