Kivy de yazıları tek tek silme

Kivy de bir butona tıklayınca TextInput da bir harf silinecek nasıl çözererim bu sorunu ???

Ben olsam once textinputda olan metni alırım,bu stringde degisiklik yapıp bu textınputın yeni textını bu degistirilmis string yaparım.(tabi caktırma oyle yapmayabilirim ama,cunku cok buyuk metinlerde sıkıntı cıkarabilir bu algoritma.Yani:

from kivy.app import App
from kivy.lang import Builder
kv = """
BoxLayout:
    orientation: "vertical"
    TextInput:
        id: bar
    Button:
        text: "silme cubugu"
        on_press: app.sil_butonu()
"""

class bar_deneme(App):
    def sil_butonu(self):
        content = self.app.ids.bar.text
        self.app.ids.bar.text = content[0:len(content)-1]
    def build(self):
        self.app = Builder.load_string(kv)
        return self.app

bar_deneme().run()

Yeni sonuclar bulursam paylasırım.Bu arada sorularınızı stackoverflow gibi platformlara sormanızı cidden tavsiye ederim.Cok guzel cevaplar veriyorlar.Hem ingilizceniz gelisir,hem de sorunuza daha guzel cevaplar verilir.Bakmıssın kivy nin yazarı bile yanıt verir:)

Kolay gelsin.

Teşekkür ederim saol :slight_smile:

#-*-coding:utf8;-*-

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout

Builder.load_string('''
<MainApp>:
    TextInput:
        id: textinput
        text: 'Silinecek Yazı'
        size_hint: 1,.5
        pos_hint: {'top':1}
    Button:
        text: 'Sil'
        size_hint: 1,.05
        pos_hint: {'center_x':.5,'center_y':.45}
        on_release: textinput.do_backspace(from_undo=False, mode='bkspc')
''')

class MainApp(FloatLayout):
    pass

class MyApp(App):
    def build(self):
        return MainApp()
MyApp().run() 

2 Beğeni