如何在kivy中通过不同的类或根小部件传递变量?

2024-09-28 17:05:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个应用程序,在这个应用程序中,我确定了一个类中的一个变量,并需要将它转移到另一个类中。我想使用id,但这对不同的根小部件不起作用。后来我发现了factory,它看起来很有前途,似乎也有点用,但当我更新PopupColor类中的变量时,它并没有在DrawScreen类中更新。在

这是密码。在

生产日期:

class PopupColor(Popup):
    color = [0,0,0,1]
    def on_press_dismiss(self, colorpicker, *args):
        print(self.color)
        self.dismiss()
        self.color = colorpicker.color
        print(self.color)

class DrawScreen(Screen):
    def testy(self):
        self.color = Factory.PopupColor().color
        print(self.color)

千伏:

^{pr2}$

那我该怎么做?离我还有多远?在

编辑:所以看起来错误并不是真正的工厂部件,而是PopupColor中的变量不会永久改变。在


Tags: selfid应用程序密码部件factorydefclass
1条回答
网友
1楼 · 发布于 2024-09-28 17:05:06

问题是当您更改属性时,您使用self,它引用了这个实例。
但是,由于您创建了一个新的PopupColor对象,每次打开弹出窗口时,都需要将color视为共享变量。
你可以这样改变颜色:

PopupColor.color = colorpicker.color

这样可以将属性color视为与所有PopupColor对象共享。在

相关问题 更多 >