我正在使用PyQt3d并尝试在初始化后启用/禁用球体实体。当我尝试时,它们仍显示在窗口中,但是isEnabled的值应为应有的值。例如,如果我先启用球体,然后按一个按钮将其禁用,isEnabled将返回false,但是球体仍显示在窗口中。我假设这与继承有关,因为直到实现实景图,问题才出现。我的场景图可以定义为Window-> Person-> Sphere,这意味着窗口将人作为孩子,而将人作为孩子。 Window,Person和Sphere是QEntity的子类。
我设置了一个测试来禁用按下按钮时的球体:
def stop(self):
#c_window is the 3d window, and getPerson(0) just gets the first
#person added to the window
#hideSpheres loops through the spheres(Children of the person) and disables them
self.c_window.getPerson(0).hideSpheres()
print(self.c_window.getPerson(0).spheres[0].isEnabled())
这应该使所有球体都看不见,但事实并非如此。 isEnabled的输出为false。
这是我运行的有效测试,在该测试中,我禁用了Person(球的父级):
def stop(self):
#c_window is the 3d window, and getPerson(0) just gets the first
#person added to the window
self.c_window.getPerson(0).hideSpheres()
print(self.c_window.getPerson(0).spheres[0].isEnabled())
当我这样做时,这些球体也没有显示在窗口中,并且isEnabled的输出为true。
我找到了这篇文章,这似乎与我遇到的问题https://forum.qt.io/topic/37207/setenabled-vs-setdisabled相似。我希望能够单独启用/禁用领域。请让我知道是否需要更多代码/程序详细信息。谢谢。