2017-08-07 21 views
0

有人知道如何設置光標在kivy的第一行後輸入?設置光標在TextInput上的第一個總是kivy

from kivy.app import App 
from kivy.uix.textinput import TextInput 
from kivy.uix.boxlayout import BoxLayout 

class MyApp(App): 

    def build(self): 
     BoxPrincipal = BoxLayout(orientation = 'vertical') 

     self.textinput = TextInput(text='Hello world', multiline=False) 
     self.textinput.bind(on_text_validate=self.on_enter) 

     BoxPrincipal.add_widget(self.textinput) 


     return BoxPrincipal 

    def on_enter(self, instance): 
     print('User pressed enter in', instance) 
     print self.textinput.cursor_row 
     self.textinput.text = "" 
     self.textinput.focus = True 

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

後進入我需要設置光標在第一上的TextInput

有人能幫助我嗎?

+0

在on_enter方法將在你的第二個print語句後的括號內。您的textinput清除並添加另一個打印語句print(self.textinput.cursor),您的光標位於(0,0)處。你真的想達到什麼目的?你能否給你的問題增加一些背景知識。 – PalimPalim

+0

並輸入指按Enter鍵不輸入文本輸入。你有混淆嗎? – PalimPalim

回答

0

enter image description here enter image description here 將光標設置爲第一個位置並在輸入之前在TextInput中有文本可以更容易實現。有一個屬性調用hint_text看到這裏https://kivy.org/docs/api-kivy.uix.textinput.html#kivy.uix.textinput.TextInput.hint_text

from kivy.app import App 
from kivy.uix.textinput import TextInput 
from kivy.uix.boxlayout import BoxLayout 

class MyApp(App): 

    def build(self): 
     BoxPrincipal = BoxLayout(orientation = 'vertical') 

     self.textinput = TextInput(hint_text='Hello world', multiline=False) 

     BoxPrincipal.add_widget(self.textinput) 


     return BoxPrincipal 

if __name__ == '__main__': 
    MyApp().run() 
+0

我需要在TextInput中寫入一些內容並給出回車後,執行「on_text_validate」動作,然後光標返回到TextInput的位置(0,0) –