<i id='bJeW8'><tr id='bJeW8'><dt id='bJeW8'><q id='bJeW8'><span id='bJeW8'><b id='bJeW8'><form id='bJeW8'><ins id='bJeW8'></ins><ul id='bJeW8'></ul><sub id='bJeW8'></sub></form><legend id='bJeW8'></legend><bdo id='bJeW8'><pre id='bJeW8'><center id='bJeW8'></center></pre></bdo></b><th id='bJeW8'></th></span></q></dt></tr></i><div id='bJeW8'><tfoot id='bJeW8'></tfoot><dl id='bJeW8'><fieldset id='bJeW8'></fieldset></dl></div>

      <tfoot id='bJeW8'></tfoot>
      <legend id='bJeW8'><style id='bJeW8'><dir id='bJeW8'><q id='bJeW8'></q></dir></style></legend>
    1. <small id='bJeW8'></small><noframes id='bJeW8'>

      • <bdo id='bJeW8'></bdo><ul id='bJeW8'></ul>
    2. 通过 Kivy 按钮调用不同类中的函数

      时间:2023-06-07

      <i id='BcYnf'><tr id='BcYnf'><dt id='BcYnf'><q id='BcYnf'><span id='BcYnf'><b id='BcYnf'><form id='BcYnf'><ins id='BcYnf'></ins><ul id='BcYnf'></ul><sub id='BcYnf'></sub></form><legend id='BcYnf'></legend><bdo id='BcYnf'><pre id='BcYnf'><center id='BcYnf'></center></pre></bdo></b><th id='BcYnf'></th></span></q></dt></tr></i><div id='BcYnf'><tfoot id='BcYnf'></tfoot><dl id='BcYnf'><fieldset id='BcYnf'></fieldset></dl></div>
      • <bdo id='BcYnf'></bdo><ul id='BcYnf'></ul>

                <small id='BcYnf'></small><noframes id='BcYnf'>

                <legend id='BcYnf'><style id='BcYnf'><dir id='BcYnf'><q id='BcYnf'></q></dir></style></legend>

              1. <tfoot id='BcYnf'></tfoot>
                  <tbody id='BcYnf'></tbody>
                本文介绍了通过 Kivy 按钮调用不同类中的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我试图在 kivy 中调用按钮按下时的函数,该函数位于与按钮所在的不同类屏幕中.我也尝试在应用程序类中运行该函数并在那里遇到问题.这是我试图调用的函数所在的类:

                I am trying to call a function on button press in kivy, that is located in a different class screen than the button is located in. I tried running the function in the app class as well and ran into issues there. Here is the class where the function I am trying to call lies:

                # Main screen with button layout
                class LandingScreen(Screen):
                    def __init__(self, **kwargs):
                        super(LandingScreen, self).__init__(**kwargs)
                        self.buttons = [] # add references to all buttons here
                        Clock.schedule_once(self._finish_init)
                
                    def ChangePic(self):
                        self.buttons[1].background_normal = 'folder.png'
                

                这是我试图调用它的按钮:

                And here is the button that I am trying to call it with:

                <InputScreen@Screen>:
                    name: 'input_sc'
                    FloatLayout:
                        size: 800, 480
                        id: anchor_1
                        Label: 
                            text: "What would you like to bind to this button?"
                            size_hint: (1,.15)
                            text_size: self.size
                            pos_hint: {'x': 0.11, 'top': 1}
                            font_size: 28
                            font_name: 'Montserrat-Bold.ttf'
                        Button:
                            root: 'landing_sc'
                            id: filebutton
                            size: 150, 150
                            size_hint: None, None
                            background_normal: 'folder.png'
                            background_down: 'opacity.png'
                            pos_hint: {'x': 0.11, 'top': .7}
                            on_release: 
                                root.manager.transition = FadeTransition()
                                root.manager.transition.duration = 1.5
                                app.MakeFolder()
                                root.IfFolder()
                                root.ChangeToSlide()
                

                我必须在 ChangePic() 前面加上什么前缀才能从这个位置调用它?

                What do I have to prefix ChangePic() with in order to call it from this location?

                或者,有没有一种方法可以从 InputScreen 类内部轻松使用 LandingScreen 类内部的按钮?

                Alternatively- is there a way to easily work with the buttons inside of the LandingScreen class from inside of the InputScreen class?

                谢谢!

                推荐答案

                你可以在你的 App Class 中创建一个变量:

                You can create a variable in your App Class:

                some_variable = LandingScreen()
                

                然后在您的按钮中调用 ChangePic(),如下所示:

                and then in your button call ChangePic() like this:

                on_release: app.some_variable.ChangePic()
                

                此外,这可以帮助您:StackOverflow, Kivy 的 Google 群组,属性简介

                Also, this can help you: StackOverflow, Kivy's Google Group, Introduction to properties

                这篇关于通过 Kivy 按钮调用不同类中的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:在 Kivy 中动态构建下拉菜单 下一篇:kivy 官方 pong 教程:'NoneType' 对象没有属性 'center'

                相关文章

              2. <small id='cUFmt'></small><noframes id='cUFmt'>

                <legend id='cUFmt'><style id='cUFmt'><dir id='cUFmt'><q id='cUFmt'></q></dir></style></legend>
                <tfoot id='cUFmt'></tfoot>

                  <i id='cUFmt'><tr id='cUFmt'><dt id='cUFmt'><q id='cUFmt'><span id='cUFmt'><b id='cUFmt'><form id='cUFmt'><ins id='cUFmt'></ins><ul id='cUFmt'></ul><sub id='cUFmt'></sub></form><legend id='cUFmt'></legend><bdo id='cUFmt'><pre id='cUFmt'><center id='cUFmt'></center></pre></bdo></b><th id='cUFmt'></th></span></q></dt></tr></i><div id='cUFmt'><tfoot id='cUFmt'></tfoot><dl id='cUFmt'><fieldset id='cUFmt'></fieldset></dl></div>
                    <bdo id='cUFmt'></bdo><ul id='cUFmt'></ul>