获取在另一个屏幕中声明的变量

高拉夫·辛格

我正在开发一个简单的 Kivy GUI 应用程序。我想要做的是,我想从第二个屏幕(其中未创建)访问类“CL_Random”的一个对象“obj_random”。我只是不知道如何访问在一个屏幕中声明的不同屏幕。

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
#from kivy.uix.boxlayout import BoxLayout
#from kivy.uix.popup import Popup
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.properties import ObjectProperty


class CL_FirstWindow(Screen):
    def change_screen(self):
        obj_random = CL_Random()
        self.parent.current = 'second_window'

class CL_SecondWindow(Screen):
    scond_prop = ObjectProperty(None)
    def change_screens(self):
        self.parent.current = 'first_window'

class ScreenManagement(ScreenManager):
    pass

class CL_Random:
    def __init__(self):
        self.x = 5

presentation = Builder.load_file("rough2.kv")

class app(App):
     def build(self):
        return presentation


obj_app = app()
obj_app.run()

粗糙2.kv

ScreenManagement:
    CL_FirstWindow:
    CL_SecondWindow:

<CL_FirstWindow>:
    id: first_window_id
    name: 'first_window'
    FloatLayout:
        Button:
            text: 'Button1'
            size_hint: 0.3, 0.12
            pos_hint: {'x':0.1,'y':0.6}
            on_release: root.change_screen()
<CL_SecondWindow>:
    id: second_window_id
    name: 'second_window'
    FloatLayout:
        Button:
            text: 'Button2'
            size_hint: 0.3, 0.12
            pos_hint: {'x':0.1,'y':0.6}
            on_release: root.change_screens()
        Label:
            id: second_label_id
            text: 'SECOND SCREEN'
            pos_hint: {'x': 0.20, 'y':0.8}
            size_hint: 1, 0.1
            font_size: 35
            halign: 'left'
            valign: 'middle'
            text_size: self.size

谢谢

埃利亚内斯克

要访问在类中声明的变量,第一件事是该变量必须是类的属性,以便范围更大,但在您的情况下,变量是本地的,当它完成执行功能。

另一方面,该解决方案基于通过 访问另一个 Screen ScreenManager,并让对象访问它的属性,我们使用 get_screen() 方法:

CL_SecondWindow --> ScreenManager --> CL_FirstWindow --> obj_random

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.properties import ObjectProperty


class CL_FirstWindow(Screen):
    def change_screen(self):
        self.obj_random = CL_Random()
        self.manager.current = 'second_window'

class CL_SecondWindow(Screen):
    scond_prop = ObjectProperty(None)
    def change_screens(self):
        first_screen = self.manager.get_screen('first_window')
        print(first_screen.obj_random.x)

        self.parent.current = 'first_window'

class ScreenManagement(ScreenManager):
    pass

class CL_Random:
    def __init__(self):
        self.x = 5

presentation = Builder.load_file("rough2.kv")

class app(App):
     def build(self):
        return presentation


obj_app = app()
obj_app.run()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 thymeleaf 中的另一个变量声明变量

如何获取在NodeJS中另一个文件中声明的变量的动态值

在另一个文件中获取变量

如何获得在另一个类的一个类中声明的变量?

在另一个变量中获取一个变量

我无法获取从另一个函数声明的变量的值

如何在一个文件中调用一个声明的变量到另一个文件?

如何声明变量取决于Angular 8中的另一个变量

在另一个作用域中声明变量

如何在Go中的另一个包中声明具有类型的变量?

试图从另一个类中获取一个变量

如何从另一个函数中的一个函数获取返回变量

如何从另一个类中获取在一个函数中计算的变量

通过名称获取变量,该变量存储在另一个变量中

从另一个未在 | 中声明的类修改 @Published 变量 用户界面

如何将变量传递给在另一个函数中声明的函数

如何使用或调用在另一个类中声明的静态变量

如何在另一个函数中使用useEffect()中声明的变量?

.getText(); 不适用于在另一个类中声明的 textField 变量

如何使用在另一个类中声明的变量

如何从jQuery中的另一个对象访问在一个对象中声明的变量

使用循环变量获取另一个变量

如何获取在另一个枚举中声明的所有嵌套枚举的集合或数组?

如何使用jquery替换变量中的元素并获取另一个变量中的结果

通过存储在Powershell中另一个变量中的名称获取变量值

如何获取存储在jQuery中另一个变量中的变量的值

导航到另一个屏幕,其中包含在FlatList中获取的数据

如何将List <Map>的信息获取到Flutter中的另一个屏幕?

如何从Access VBA中的另一个私有子获取私有子中声明的变量的值