0

I'm trying to make an app that can automate an Instagram page, and I have the script for the program ready, but just need to implement it into a GUI. For this, I'm using Kivy. However, I only need to send one request to the API for this. When I click on a button, it triggers the command attached to on_release of the button twice. How can I fix this?

Simplified Python Script:

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.lang import Builder


class StartScreen(Screen):
    pass


class WindowManager(ScreenManager):
    pass


class BruhApp(MDApp):
    def build(self):
        self.root = Builder.load_file("bruh.kv")


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

.kv File:

WindowManager:
    StartScreen:

<StartScreen>:
    name: "start"
    FloatLayout:

        MDLabel:
            text: "Welcome to the Instagram Page Automator!"
            font: "RobotoThin"
            font_style: "H5"
            halign: "center"
            size_hint:0.9,0.7
            color: 0,0,0,0.5
            pos_hint:{"center_x":0.5,"y":0.5}


        MDFillRoundFlatButton:
            md_bg_color: 0, 1, 0.6, 1
            text:"Continue"
            font: "RobotoThin"
            size_hint:0.4,0.07
            pos_hint:{"center_x":0.5,"y":0.1}
            on_release:
                print("yes")

This script prints "Yes" twice for me everytime I press the button.

1 Answer 1

2

The kivy system automatically loads a kv file for an App if the file is correctly named (See the documentation). Since your kv file is correctly named, it will be loaded automatically. But since you also load it explicitly using the line:

self.root = Builder.load_file("bruh.kv")

the kv file actually gets loaded twice, which causes some things to be instantiated twice. Try replacing the build() method with a simple pass.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.