如何在 Vispy.app 中直接使用 Vispy.app.Canvas 运行 并作为 QMainWindow 中的 QWidget
How to have a Vispy.app.Canvas running directly in Vispy.app AND as a QWidget inside a QMainWindow
我想知道如何根据事实在 Vispy.app.Canvas init() 的末尾制作 self.show() 指令canvas 在 Vispy 应用程序中基本上是 运行 或在 QMainWindow 中作为 QWidget。
所以我有一个 Python3 Vispy 应用程序 运行 并直接显示 Canvas。在Canvas的init调用结束时,有一个强制性的self.show()。这很好用。
现在我还想将此 canvas 用作 QMainWindow 中的中央小部件。仅当我注释掉 self.show() 命令时才有效。
我想让这个调用依赖于某些东西(canvas.native.parent...或其他东西,只有当 运行 在 QMainWindow 之外时才执行它:
if SOME_CONDITION_TELLING_ME_I_M_OUT_OF_QMAINWINDOW:
self.show()
这将帮助我分解此 canvas class 而不是仅针对此 self.show() 调用有两个版本。
我希望第一个问题是清楚的。
此处提供完整代码:https://github.com/gregvds/grayscott
谢谢,
格雷格
您不需要在 class 的 __init__
方法中包含 self.show()
。在创建 Canvas 之后,您可以从使用它的模块中调用它:
canvas = Canvas(...)
canvas.show()
这样你只需要从 Canvas 是它自己的 window.
的用途中调用 .show()
我想知道如何根据事实在 Vispy.app.Canvas init() 的末尾制作 self.show() 指令canvas 在 Vispy 应用程序中基本上是 运行 或在 QMainWindow 中作为 QWidget。
所以我有一个 Python3 Vispy 应用程序 运行 并直接显示 Canvas。在Canvas的init调用结束时,有一个强制性的self.show()。这很好用。
现在我还想将此 canvas 用作 QMainWindow 中的中央小部件。仅当我注释掉 self.show() 命令时才有效。
我想让这个调用依赖于某些东西(canvas.native.parent...或其他东西,只有当 运行 在 QMainWindow 之外时才执行它:
if SOME_CONDITION_TELLING_ME_I_M_OUT_OF_QMAINWINDOW:
self.show()
这将帮助我分解此 canvas class 而不是仅针对此 self.show() 调用有两个版本。
我希望第一个问题是清楚的。
此处提供完整代码:https://github.com/gregvds/grayscott
谢谢,
格雷格
您不需要在 class 的 __init__
方法中包含 self.show()
。在创建 Canvas 之后,您可以从使用它的模块中调用它:
canvas = Canvas(...)
canvas.show()
这样你只需要从 Canvas 是它自己的 window.
的用途中调用.show()