我想知道如何使self.show()指令在Vispy.app.Canvas init()结束时依赖于这样一个事实:画布基本上是在Vispy应用程序中运行的,或者在QMainWindow中作为QWidget运行。
因此,我有一个运行并直接显示画布的Python3 Vispy应用程序。在画布的init调用的末尾,有一个强制的self.show()。这个很好用。
现在,我还想使用这个画布作为QMainWindow中的中心部件。只有当我注释掉self.show()命令时,这才能起作用。
我想让这个电话依赖于某种东西(canvas.native.parent.或者,只有在QMainWindow之外运行时才执行它:
if SOME_CONDITION_TELLING_ME_I_M_OUT_OF_QMAINWINDOW:
self.show()这将帮助我分解这个画布类,而不是只为这个self.show()调用创建两个版本。
我希望第一个问题是清楚的。
这里有完整的代码:https://github.com/gregvds/grayscott
谢谢,
格雷格
发布于 2022-01-20 18:45:18
不需要在类的self.show()方法中使用__init__。在创建画布之后,您可以从使用它的模块调用它:
canvas = Canvas(...)
canvas.show()这样,您只需要从画布是自己的窗口的使用中调用.show()。
https://stackoverflow.com/questions/70789892
复制相似问题