How to Call a Function with 'on_press' command inside same class using KIVY button

 ̄綄美尐妖づ 提交于 2021-01-29 11:14:27

问题


I'm trying to call a popup and the have the user input text. After hitting the save button inside my popup it updates a new widget.

I have almost everything working but I don't know how to properly call a function inside the same class.

I have two functions inside of my 'class Trackers(Screen):' how can I make a button that 'on_press' command will trigger another function?

The line of code I need to be fixed is this:

okay = Button(text='Save', on_press=self.addit(str(text_input), num), on_release=pop.dismiss)

Thank you so much.

''''

def addWidget(self):
    num = '0'
    box = BoxLayout(orientation= 'vertical', padding=40, spacing=5)
    pop = Popup(title='Tracker: details', content=box, size_hint=(None,None), size=(300,300))

    text_input = TextInput(hint_text='Add Trackers', multiline=False,)
    okay = Button(text='Save', on_press=self.addit(str(text_input), num), on_release=pop.dismiss)

    box.add_widget(text_input)
    box.add_widget(okay)
    pop.open()

def addit(self, text_input, num, *args):
    if text_input not in self.storage.keys():
        self.ids.track.add_widget(Tracker(text=text_input, number=num, data=self.storage))
        self.storage[text_input] = '0'
        text_input = ''
        self.saveData()
    else:
        box = BoxLayout(orientation= 'vertical', padding=40, spacing=5)
        pop = Popup(title=f'Opps: "{text_input}" is already listed below', content=box, size_hint=(None,None), size=(300,180))
        try_again = Button(text='Try Again', on_release=pop.dismiss)
        box.add_widget(try_again)
        pop.open()

''''

来源:https://stackoverflow.com/questions/57208224/how-to-call-a-function-with-on-press-command-inside-same-class-using-kivy-butt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!