Kivy:如何在 kivy 中制作圆角 TextInput?
Posted
技术标签:
【中文标题】Kivy:如何在 kivy 中制作圆角 TextInput?【英文标题】:Kivy: How do you make a rounded TextInput in kivy? 【发布时间】:2021-11-03 23:26:31 【问题描述】:我研究过的伙计们,但这一切都太少了。我发现的只是这个:Kivy: TextInput border radius。所以你们能告诉我如何在 kivy 中更容易地制作圆形文本输入。我需要一个解决方案。我试过radius: [58]
,不。我在上面的代码链接中听说过 ellipse,虽然我不确定如何使用它。它有什么作用——你如何使用它——或者它不是解决方案。
【问题讨论】:
这可能会对您有所帮助。 ***.com/questions/47639548/… 好吧,看起来不错,但是,你是怎么做到的 【参考方案1】:解决方法:复制粘贴此脚本并执行(记得改源代码中的背景图片名称“a12.jpeg”),最后2张截图中输入看起来更大的原因是因为PC分辨率必须更高,但在手机中它会看起来正常大小。
from kivymd.app import MDApp as jbsidis
from kivy.lang import Builder as jbsidisx
class jbsidis_Josue_Carranza(jbsidis):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def build(self):
return jbsidisx.load_string(M)
M="""
#:import Window kivy.core.window.Window
Screen:
bg_color: (1,1,1,.3)
highlight_color1jbsidis: [0,0,0,0]
highlight_color2jbsidis: (0,0,0,.3)
canvas.before:
Color:
rgba: [1,1,1,1]
Rectangle:
size: self.size
pos: self.pos
source: "a12.jpeg"
FloatLayout:
MDIconButton:
size_hint: .4, .05
pos_hint: "center_x": .1, "top": .975
text: "Back"
icon: 'chevron-left'
markup: True
TextInput:
id: email_jbsidis
hint_text_color: [0,0,0, 1]
foreground_color: [1,1,1,1]
hint_text: "Email"
background_color: [0,0,0,0]
background_image: ""
background_normal: ""
background_active: ""
multiline: False
size_hint: .7 ,.1 #.06
pos_hint: 'center_x':.5, 'center_y':.8 #'center_y':.8
canvas.before:
Color:
rgba: root.highlight_color2jbsidis if root.ids.email_jbsidis.focused else [1,1,1,.5]
RoundedRectangle:
size: self.size
pos: self.pos
radius: 10,
FloatLayout:
MDIconButton:
text: "[u]Reset password[/u]"
icon: 'email-send-outline'
markup: True
color: Window.clearcolor
opposite_colors: True
pos_hint: 'center_x':.8, 'center_y':.8
TextInput:
id: password_jbsidis
hint_text: "Password"
foreground_color: [1,1,1,1]
background_color: [0,0,0,0]
background_image: ""
background_normal: ""
background_active: ""
multiline: False
password: True
size_hint: .7 ,.1 #.06
pos_hint: 'center_x':.5, 'center_y':.65
canvas.before:
Color:
rgba: root.highlight_color2jbsidis if root.ids.password_jbsidis.focused else [1,1,1,.5]
RoundedRectangle:
size: self.size
pos: self.pos
radius: 10,
FloatLayout:
MDIconButton:
icon: 'lock-outline'
markup: True
color: Window.clearcolor
opposite_colors: True
pos_hint: 'center_x':.8, 'center_y':.65
MDIconButton:
id: jbsidis_s
text: "[u]Reset password[/u]"
icon: 'lock-open-outline'
markup: True
color: Window.clearcolor
pos: password_jbsidis.pos[0]+password_jbsidis.size[0], password_jbsidis.pos[1]+dp(4)
pos_x: password_jbsidis.pos[0]
opposite_colors: True
MDRaisedButton:
id: jbsidis_i
text: "Sign In"
pos_hint: "center_x": .5, "top": .5
MDRaisedButton:
id: button_jbsidis
text: "Sign up"
size_hint: .2 ,.05
pos_hint: "right": .85, "center_y": .1
opacity: 0
disabled: True
bg_color: (0,0,0,1)
color: [0,0,0,1]
"""
jbsidis_Josue_Carranza().run()
图片:
【讨论】:
感谢您提供额外的指导,这些信息对我有很大帮助。非常感谢。【参考方案2】:我不确定您所说的圆形文本输入是什么意思,但一种使输入类似于椭圆的方法是使用 KivyMD。在 KivyMD 内部有一个叫做 MDTextFieldRound 的东西,它给了你这个。这是一个页面:https://kivymd.readthedocs.io/en/0.104.1/components/text-field/
【讨论】:
链接可能会改变或停止工作。请务必在此处发布完整答案并提供仅供参考的链接。 抱歉以上是关于Kivy:如何在 kivy 中制作圆角 TextInput?的主要内容,如果未能解决你的问题,请参考以下文章