【问题标题】:Using wxPython with an existing c++ Opengl Context将 wxPython 与现有的 c++ Opengl 上下文一起使用
【发布时间】:2014-08-21 21:39:27
【问题描述】:

我找不到如何将 wxPython 与预先存在的 OpenGL 上下文一起使用。我知道如何单独使用 wxPython 并创建它自己的窗口,但是否可以使用 Windows 窗口使用的上下文?

所以,我有一个使用 OpenGL 的 c++ 编写的引擎。我计划为ui元素使用python。我打算将 python 与 c++ 链接(这应该没问题),但是是否可以在 python 部分使用 wxPython 并使其使用预先存在的窗口中的 OpenGL 上下文?

编辑:对于那些之前尝试过的人,this 会起作用吗?

【问题讨论】:

  • “我要链接python和c++(这应该没问题)”所以,你不能把你的C++代码中的GL上下文导出到“share它”与在“Python 端”上运行的代码?
  • 可能。但是你能在 wxPython 中使用现有的上下文吗?还是你总是必须从 wxPython 创建窗口(就像在基本的 Hello World 教程中一样)?
  • 您打算将 C++ 游戏引擎嵌入到 wxPython 程序中,还是将 Python 解释器嵌入到 C++ 程序中?另外,您使用的是哪个平台:MacOS、MSWindows、Linux?
  • 我使用的是 Windows。这个想法是我希望 wxPython 在 C++ 游戏引擎中作为 UI 工作

标签: python c++ opengl wxpython


【解决方案1】:

好吧,无论哪种方式,我认为您都必须编写一个自定义 wxPython 类作为游戏引擎 GL 上下文的包装器。

构建程序的简单方法是使用 wxPython 作为主控件。您从 Python 创建游戏引擎视图,作为 Python 对象,并运行 wxPython 事件循环。每次自定义视图更新或空闲时,都可以调用 C++ 游戏引擎代码。

如果您必须为游戏引擎编写一个 C++ main() 并使用游戏引擎事件循环,那将变得更加困难。 wxPython 和 wxWidgets 与大多数 GUI 工具包一样,在编写时假设它是主事件循环并且可以完全控制事件。您将不得不弄清楚如何每帧调用一次 wxPython 事件处理程序内部循环。

希望这会有所帮助。

【讨论】:

  • 是的,它有帮助:) 谢谢。太糟糕了,它会比我想象的更难
猜你喜欢
  • 2017-02-05
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2022-11-26
  • 1970-01-01
  • 2011-07-10
  • 2020-01-20
  • 2012-11-14
相关资源
最近更新 更多