2015-07-06 60 views
4

我有一個TextInputKivy長內容。我想知道字符的寬度TextInput。換句話說,線的長度?如何獲得Kivy TextInput或Label的字符寬度

textinput = TextInput(text="Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps") 

enter image description here

+0

如何使用'cursor_col'&'cursor_row':http://kivy.org/docs/api-kivy.uix.textinput.html#kivy.uix.textinput .TextInput.cursor_col? –

+0

@ KhalilAmmour-خليلعمور我認爲cursor_col給你的光標位置不是線條的寬度。 –

+0

是的,這是我的觀點,做'cursor_col'&'cursor_row'到'cursor_col'的存儲值和/或cursor_row' = +1時的下一個新行之間的組合檢查,那應該是行的長度,你會得到我的觀點在這裏? –

回答

1

可以使用其_lines酒店辦理入住手續的TextInput線。爲了得到它們的長度使用len()內置:

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

from kivy.lang import Builder 

Builder.load_string(""" 

<MyWidget>: 
    Button: 
     text: "Print width" 
     on_press: print([len(line) for line in ti._lines]) 
    TextInput 
     text: "Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps" 
     id: ti 
""") 

class MyWidget(BoxLayout): 
    pass 

class MyApp(App): 
    def build(self): 
     return MyWidget() 

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

謝謝。這使得該行中的字符數不是總寬度。 –

+0

例如,由於字符沒有固定的寬度,因此無法獲得總值。字符的寬度小於X.使用該代碼來比較僅包含的行的寬度。和X字符。 – Nykakin