Положение заголовка панели с вкладками в Киви - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь создать собственную TabbedPanel для управления ее внешним видом и другими вещами.Но я не могу установить панель.В этом примере я закрасил полосу зеленым, чтобы проиллюстрировать эту проблему.Я взглянул на этот вопрос , но, похоже, не могу понять это.Попытался установить все отступы на ноль, но безуспешно.

Панель слегка смещена и немного меньше полосы (как показано зеленым цветом).Как мне изменить это и удалить / контролировать отступы.

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout

Builder.load_string('''

<Screen>:
    canvas.before:
        Color:
            rgba: (0.8, 0.5, 1, 1)
        Rectangle:
            size: self.size
            pos: self.pos
    background_normal: ''
    orientation: 'vertical'
    padding: 50

    CustomPanel:
        CustomPanelItem:
            Label:
                text: 'Hello there'


<CustomPanel@TabbedPanel+CustomStrip>:
    do_default_tab: False
    tab_width: self.width 
    padding: 0, 0, 0, 0


<CustomPanelHeader@TabbedPanelHeader>:
    text: 'Long Text for a Tab'
    padding: 0, 0


<CustomPanelItem@TabbedPanelItem+CustomPanelHeader>:
    text: 'Hello World Hello World Hello World'
    padding: 0, 0


<CustomStrip@TabbedPanelStrip>:
    canvas:
        Color:
            rgba: (0, 1, 0, 1) # green
        Rectangle:
            size: self.size
            pos: self.pos

''')


class Screen(BoxLayout):
    pass


class TestApp(App):

    def build(self):
        return Screen()


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

1 Ответ

1 голос
/ 08 июня 2019

Вопрос 1 - 1 пиксель слева

, но кажется, что 1 пиксель слева ...?

Причина корня - 1 пиксель долевый

Это происходит из-за изображений , используемых вкладкой, которая фактически является кнопкой.

Решение - 1 пиксель влево

Класс переопределенияправило, <TabbedPanelHeader> с background_normal: '' и background_color: любого цвета rgba

Вопрос 2 - комната для ног под

... как мне справиться с этой комнатой для ног под?

Пояснение

Я полагал, что это может быть по замыслу наличие полосы / разделителя.

Вопросы

Панельнемного смещен и немного меньше полосы (как показано зеленым цветом).Как мне изменить это и удалить / контролировать заполнение.

Решение

Переопределить padding в правиле класса <StripLayout> и удалить все ссылки на padding.

Фрагменты

...

<CustomPanelItem@TabbedPanelItem+CustomPanelHeader>:
    text: 'Hello World Hello World Hello World'

<StripLayout>
    padding: 0, 0, 0, 0

<TabbedPanelHeader>:
    background_normal: ''
    background_color: 0, 0, 1, 1    # blue

<CustomStrip@TabbedPanelStrip>:
    canvas:
...

Выход

TabbedPanelheader - removed images StripLayout - padding

...