2017-05-28 32 views
2

我是Kivy編程中的新手。 我想在Kivy中只輸入4行文字輸入。 我可以只使用一行或多行,但我想要一個只啓用了4行的文本字段。 總之我希望有一個文本字段,我可以直到輸入任何內容四行啓用文本中只有四行輸入Kivy

回答

3

據我所知,有沒有乾淨的方式做,在kivy。您可以嘗試使用4個獨立的TextInputs,並在用戶點擊Enter時切換焦點。以下是一個示例:

from kivy.base import runTouchApp 
from kivy.lang import Builder 

runTouchApp(Builder.load_string(""" 
BoxLayout: 
    orientation: "vertical" 
    TextInput: 
     multiline: False # one line only 
     on_text_validate: t1.focus = True # when Enter is pressed, switch focus 
    TextInput: 
     id: t1 
     multiline: False 
     on_text_validate: t2.focus = True 
    TextInput: 
     id: t2 
     multiline: False 
     on_text_validate: t3.focus = True 
    TextInput: 
     id: t3 
     multiline: False 
      """)) 
2

您可以爲換行符和/或字符設置計數器並阻止任何新換行符/字符。

Kivy TextInput documentation

可以使用row值。這可以通過TextInput的過濾功能進行管理。

編輯:
一個小例子類:

class TInput(TextInput): 

    def __init__(self,**kwargs): 
     super(TInput,self).__init__(**kwargs) 
     self.__lineBreak__=0 

    def insert_text(self, substring, from_undo=False): 
     if "\n" in substring and self.__lineBreak__ <= 4: 
      self.__lineBreak__ += 1 
      self.__s__ = substring 
     elif self.__lineBreak__ > 4 and "\n" in substring: 
      self.__s__ = "" 
     return super(TInput, self).insert_text(s, from_undo=from_undo) 

我認爲應該做的工作

相關問題