首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Vispy.app.Canvas在Vispy.app中直接运行,在QMainWindow中作为QWidget运行

如何让Vispy.app.Canvas在Vispy.app中直接运行,在QMainWindow中作为QWidget运行
EN

Stack Overflow用户
提问于 2022-01-20 16:29:26
回答 1查看 128关注 0票数 0

我想知道如何使self.show()指令在Vispy.app.Canvas init()结束时依赖于这样一个事实:画布基本上是在Vispy应用程序中运行的,或者在QMainWindow中作为QWidget运行。

因此,我有一个运行并直接显示画布的Python3 Vispy应用程序。在画布的init调用的末尾,有一个强制的self.show()。这个很好用。

现在,我还想使用这个画布作为QMainWindow中的中心部件。只有当我注释掉self.show()命令时,这才能起作用。

我想让这个电话依赖于某种东西(canvas.native.parent.或者,只有在QMainWindow之外运行时才执行它:

代码语言:javascript
复制
if SOME_CONDITION_TELLING_ME_I_M_OUT_OF_QMAINWINDOW:
    self.show()

这将帮助我分解这个画布类,而不是只为这个self.show()调用创建两个版本。

我希望第一个问题是清楚的。

这里有完整的代码:https://github.com/gregvds/grayscott

谢谢,

格雷格

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-20 18:45:18

不需要在类的self.show()方法中使用__init__。在创建画布之后,您可以从使用它的模块调用它:

代码语言:javascript
复制
canvas = Canvas(...)
canvas.show()

这样,您只需要从画布是自己的窗口的使用中调用.show()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70789892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档