Казалось бы, использование 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
.