Butona tıklanınca inputa göre resimm gelmesi

from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.button import MDRectangleFlatButton
from kivy.lang import Builder
from helper import giris_helper


class uyg(MDApp):

    def build(self):
        ekran=Screen()
        # giris=MDTextField(text='gir',pos_hint={'center_x': 0.5,'center_y' : 0.5},size_hint_x=None,width=280)

        buton = MDRectangleFlatButton(text='Çevir',pos_hint={'center_x': 0.5,'center_y' : 0.42},on_release=self.show_data)
        self.giris = Builder.load_string(giris_helper)
        ekran.add_widget(self.giris)
        ekran.add_widget(buton)
        return ekran

    def show_data(self, obj):
        print(self.giris.text)

uyg().run()

def show data kısmına print yerine butona tıklandığında yazılan kelimedeki harflere göre resim çıkmasını istiyorum örnek olarak merhaba kelimesinde
‘m’-‘e’-‘r’-‘h’-‘a’-‘b’-‘a’ nın karşılığı olarak her harf için bir resim belirlenmesini ve butona basıldığında da o resimlerin tek tek belirmesini istiyorum kısa ve basit bir şekilde yapabilmemin yöntemi var mı?

eğer doğru anladıysam şu şekilde

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image

class main(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.orientation = "vertical"
        self.a = TextInput(size_hint_y=.1)
        self.add_widget(self.a)
        self.b = Button(size_hint_y=.1)
        self.add_widget(self.b)
        self.b.bind(on_release=self.show_data)
        self.layout = BoxLayout(size_hint_y=.8)
        self.add_widget(self.layout)
        
    def show_data(self, show):
        for i in self.a.text:
            self.layout.add_widget(Image(source=i+".png"))
            
class app(App):
    def build(self):
        return main()

if __name__ == "__main__":
    app().run()

düzen konusunda pek uğraşmadım sen halledersin onları. Kodu özetliyecek olursam şu şekilde butonun fonksiyonu text input un text ini alıyor ve bir for döngüsüyle her harfi için kaynağı harf + .png olan bir dosya çağırıyor. Bu durumda yapman gereken tek şey her bir harf için kendi isminde bir png dosyası oluşturmak oluyor.

1 Beğeni

burada resimleri yan yana koyuyor sırasıyla nasıl gösterebilirim örnek olarak ilk önce tüm ekran a.png 1 saniye sonra tüm ekran b.png şeklinde

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
from kivy.clock import Clock

class main(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.orientation = "vertical"
        self.a = TextInput(size_hint_y=.1)
        self.add_widget(self.a)
        self.b = Button(size_hint_y=.1)
        self.add_widget(self.b)
        self.b.bind(on_release=self.show_data)
        self.layout = BoxLayout(size_hint_y=.8)
        self.add_widget(self.layout)
        
    def show_data(self, show):
        self.list = []
        for i in self.a.text:
            self.list.append(i)
        print(self.list)
        Clock.schedule_once(self.call)

    def call(self, call):
        self.numb = 0
        Clock.schedule_interval(self.do, 1)
    
    def do(self, do):
        if (self.numb < len(self.list)):
            self.layout.clear_widgets()
            self.layout.add_widget(Image(source=self.list[self.numb]))
            self.numb += 1
        else:
            self.numb=0
            self.list = []
            Clock.unschedule(self.do)
            self.layout.clear_widgets()
            
class app(App):
    def build(self):
        return main()

if __name__ == "__main__":
    app().run()

saniye, süre olayları için kivy.clock u araştırabilirsiniz

1 Beğeni