Kivy, TextInput с простыми черными полями - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь просто создать простую границу с TextInput, как показано на рисунке ниже: Black border image

TextInput:
   size_hint_y: None
   height: 122
   disabled_background_color: 1,1,1,1
   disabled_foreground_color: 1,1,1,1
   background_disabled_normal: ''
   background_normal: ''
   background_color: 1,1,1,1
   foreground_color: 0,0,0,1

Я пробовал любое количество комбинаций кода выше,в том числе отключение их.Если я не отключу background_normal, он будет выглядеть как очень легкий градиент от черного к белому.Я просто хочу простые черные рамки вокруг моего TextInput.

1 Ответ

0 голосов
/ 04 января 2019

Казалось бы, использование border и BorderImage было бы способом сделать это, но я не мог понять это. Вот способ, который переопределяет стиль по умолчанию TextInput:

# over ride the default TextInput style
<-TextInput>:
    canvas.before:
        # Draw border first
        Color:
            rgba: 0,0,0,1
        Rectangle:
            size: self.size
            pos: self.pos

        # Draw background (covers most of the above border)
        Color:
            rgba: self.background_color
        Rectangle:
            size: (self.width - self.border[1] - self.border[3], self.height - self.border[0] - self.border[2])
            pos: (self.x + self.border[3], self.y + self.border[0])

        # set the color for the text
        Color:
            rgba: self.foreground_color

Здесь по-прежнему используются background_color и foreground_color, но цвет границы жестко закодирован как 0,0,0,1. Свойство border TextInput устанавливает ширину границы, как указано в документации

Обратите внимание, что - в правиле означает игнорирование любых предыдущих правил.

Просто добавьте это, прежде чем использовать TextInput в своем файле kv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...