Python 2.7 Kivy 1.10 UIX,屏幕上有多个自定义小部件

Python 2.7 Kivy 1.10 UIX,屏幕上有多个自定义小部件,python-2.7,opengl,3d,kivy,Python 2.7,Opengl,3d,Kivy,我是Kivy的新手,所以还在学习如何利用图书馆制作内容。我的问题与小部件和布局有关。我正在尝试用OpenGL创建某种3D可视化工具,并且刚刚开始查看内置的3D渲染示例,您可以查看它 我更改了原始示例,并在类呈现器(小部件)中添加了一个方法,用于重新定位小部件本身: def reposition_b1(self, *args): self.pos = self.x, self.height / 2 - self.height / 2 在构建方法中的RenderApp类中: def bui

我是Kivy的新手,所以还在学习如何利用图书馆制作内容。我的问题与小部件和布局有关。我正在尝试用OpenGL创建某种3D可视化工具,并且刚刚开始查看内置的3D渲染示例,您可以查看它

我更改了原始示例,并在类呈现器(小部件)中添加了一个方法,用于重新定位小部件本身:

def reposition_b1(self, *args):
    self.pos = self.x, self.height / 2 - self.height / 2
在构建方法中的RenderApp类中:

def build(self):
    b = BoxLayout(orientation='horizontal')
    r1= Renderer()
    r1.reposition_b1(500)
    r2= Renderer()
    b.add_widget(r1)
    b.add_widget(r2)
    return b
因此,根据我对Kivy的理解,它应该给出下一个结果(背景中的洋红色只是一个参考):


但是取而代之的是,我在可视化工具中只得到了一个3D模型。有没有关于我遗漏了什么的提示?

我不认为3d渲染着色器尊重小部件的位置,所以两者都会在同一位置绘制。这是您需要添加到代码中的内容,以使其按预期工作。例如,您可以通过绘制两个不同的3D对象并查看它们是否位于彼此的顶部来检查是否存在问题。此外,您尝试设置self.pos也不会有任何作用,因为BoxLayout根据布局规则放置其子对象。@恶劣情况下,您认为如果我将它们创建为布局而不是小部件,是否可行?。我还尝试放置两个不同的3d模型,两个模型都显示出来。