【问题标题】:Kivy: How do you make a rounded TextInput in kivy?Kivy:如何在 kivy 中制作圆角 TextInput?
【发布时间】:2021-11-03 23:26:31
【问题描述】:

我研究过的伙计们,但这一切都太少了。我发现的只是这个:Kivy: TextInput border radius。所以你们能告诉我如何在 kivy 中更容易地制作圆形文本输入。我需要一个解决方案。我试过radius: [58],不。我在上面的代码链接中听说过 ellipse,虽然我不确定如何使用它。它有什么作用——你如何使用它——或者它不是解决方案。

【问题讨论】:

标签: kivy kivy-language react-native-textinput


【解决方案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/

【讨论】:

  • 链接可能会改变或停止工作。请务必在此处发布完整答案并提供仅供参考的链接。
  • 抱歉
猜你喜欢
  • 1970-01-01
  • 2013-10-01
  • 2018-11-05
  • 1970-01-01
  • 2021-05-21
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多