Python 我可以在Kivy中将属性从一个小部件复制到另一个小部件吗?

Python 我可以在Kivy中将属性从一个小部件复制到另一个小部件吗?,python,widget,kivy,python-3.4,Python,Widget,Kivy,Python 3.4,我有两个小部件,我需要以某种方式将所有属性(pos、大小、画布等)从一个小部件复制到另一个小部件(然后将最后一个移动到新的pos)。也许我可以一个接一个地复制属性,但是否有一些内置函数? Python的副本似乎只生成shell副本(我无法移动副本等),而deepcopy失败了。一般来说,我不知道有什么现成的方法可以做到这一点,但您可能可以相当轻松地创建一个函数来实现这一点。您可以通过EventDispatcher的properties()方法获取小部件属性的列表,不过您还需要手动跟踪要复制的任何

我有两个小部件,我需要以某种方式将所有属性(pos、大小、画布等)从一个小部件复制到另一个小部件(然后将最后一个移动到新的pos)。也许我可以一个接一个地复制属性,但是否有一些内置函数?
Python的副本似乎只生成shell副本(我无法移动副本等),而deepcopy失败了。

一般来说,我不知道有什么现成的方法可以做到这一点,但您可能可以相当轻松地创建一个函数来实现这一点。您可以通过
EventDispatcher
properties()
方法获取小部件属性的列表,不过您还需要手动跟踪要复制的任何非kivy属性属性,并且可能需要检查以确保安全地复制它们


根据情况,可能还有其他可能性。例如,如果小部件首先是从一组参数实例化的,并且从未真正进行过太多修改,那么您可以保存参数列表并使用它来构造一个新的小部件。可能还有更有效的替代方案-如果您不需要与“副本”交互,则根本不需要制作新的小部件,但可以将原始小部件绘制到Fbo并简单地重复使用其纹理。这将是kivy的一种更高级的用法,但并不难,如果您对它感兴趣但不知道如何使用它,请告诉我。

一般来说,我不知道有什么现成的方法可以实现这一点,但您可以很容易地创建一个函数来实现它。您可以通过
EventDispatcher
properties()
方法获取小部件属性的列表,不过您还需要手动跟踪要复制的任何非kivy属性属性,并且可能需要检查以确保安全地复制它们


根据情况,可能还有其他可能性。例如,如果小部件首先是从一组参数实例化的,并且从未真正进行过太多修改,那么您可以保存参数列表并使用它来构造一个新的小部件。可能还有更有效的替代方案-如果您不需要与“副本”交互,则根本不需要制作新的小部件,但可以将原始小部件绘制到Fbo并简单地重复使用其纹理。这将是kivy的一种更高级的用法,但并不难,如果您对它感兴趣但不知道如何使用它,请告诉我。

一般来说,我不知道有什么现成的方法可以实现这一点,但您可以很容易地创建一个函数来实现它。您可以通过
EventDispatcher
properties()
方法获取小部件属性的列表,不过您还需要手动跟踪要复制的任何非kivy属性属性,并且可能需要检查以确保安全地复制它们


根据情况,可能还有其他可能性。例如,如果小部件首先是从一组参数实例化的,并且从未真正进行过太多修改,那么您可以保存参数列表并使用它来构造一个新的小部件。可能还有更有效的替代方案-如果您不需要与“副本”交互,则根本不需要制作新的小部件,但可以将原始小部件绘制到Fbo并简单地重复使用其纹理。这将是kivy的一种更高级的用法,但并不难,如果您对它感兴趣但不知道如何使用它,请告诉我。

一般来说,我不知道有什么现成的方法可以实现这一点,但您可以很容易地创建一个函数来实现它。您可以通过
EventDispatcher
properties()
方法获取小部件属性的列表,不过您还需要手动跟踪要复制的任何非kivy属性属性,并且可能需要检查以确保安全地复制它们


根据情况,可能还有其他可能性。例如,如果小部件首先是从一组参数实例化的,并且从未真正进行过太多修改,那么您可以保存参数列表并使用它来构造一个新的小部件。可能还有更有效的替代方案-如果您不需要与“副本”交互,则根本不需要制作新的小部件,但可以将原始小部件绘制到Fbo并简单地重复使用其纹理。这将是kivy的一个更高级的用法,但不是很难,如果您对它感兴趣但不知道如何做,请告诉我。

您可以做的一件事是使用python中的复制函数。 这不会复制所有pos/size值,但您将拥有所有属性

例:

从副本导入副本

新建\u框=复制(自当前\u框)


希望这会有所帮助。

您可以做的一件事是使用python中的复制函数。 这不会复制所有pos/size值,但您将拥有所有属性

例:

从副本导入副本

新建\u框=复制(自当前\u框)


希望这会有所帮助。

您可以做的一件事是使用python中的复制函数。 这不会复制所有pos/size值,但您将拥有所有属性

例:

从副本导入副本

新建\u框=复制(自当前\u框)


希望这会有所帮助。

您可以做的一件事是使用python中的复制函数。 这不会复制所有pos/size值,但您将拥有所有属性

例:

从副本导入副本

新建\u框=复制(自当前\u框)


希望这有帮助。

我想同时在两个不同的位置表示我的小部件,可能吗?是否可能使用Fbo?我想同时在两个不同的位置表示我的小部件,可能吗?是否可能使用Fbo?我想同时在两个不同的位置表示我的小部件,有可能吗?有Fbo的可能吗?我想同时在两个不同的位置表示我的小部件,有可能吗?有Fbo的可能吗?