【问题标题】:Kivy Text Editor Input Not Showing UpKivy 文本编辑器输入未显示
【发布时间】:2019-02-15 05:34:42
【问题描述】:

不幸的是,我在 kivy 和 Python 3 中遇到了一个错误。我没有通过谷歌找到一个灵魂。我至少想获得文本输入,但它没有显示出来。只是文字本身。感谢您的宝贵时间!

import kivy
kivy.require('1.10.1') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label

class ColdKivyApp(App):
    def build(self):
        f = FloatLayout()
        label = Label(text="Cold") #I acutally orginally called it Zone unitil I changed it into Cold cause it's really cold now
        f.add_widget(label)
        txt = TextInput(text='', focus=True, multiline=True, cursor_blink=True, background_color=(1,1,1,1))
        f.add_widget(txt)
        return f

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

【问题讨论】:

    标签: python python-3.x text kivy


    【解决方案1】:

    在构造函数中设置焦点的时候TextInput好像有bug,解决方法是通过Clock显示窗口后的瞬间设置焦点:

    import kivy
    kivy.require('1.10.1') # replace with your current kivy version !
    from kivy.app import App
    from kivy.uix.floatlayout import FloatLayout
    from kivy.uix.textinput import TextInput
    from kivy.uix.label import Label
    from kivy.clock import Clock
    
    class ColdKivyApp(App):
        def build(self):
            f = FloatLayout()
            label = Label(text="Cold") 
            f.add_widget(label)
            txt = TextInput(multiline=True, cursor_blink=True, background_color=(1,1,1,1))
            f.add_widget(txt)
            Clock.schedule_once(lambda *args: setattr(txt, "focus", True))
            return f
    
    if __name__ == '__main__':
        ColdKivyApp().run()
    

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多