OPENGL用户界面编程

2024-05-13 11:26:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个图形应用程序来显示数据(不是一个游戏,而是一个真正的主力应用程序)。它需要跨平台,所以我选择:

  • Python
  • openGL(我需要3D,混合,纹理等)
  • pyopengl
  • wx/pywx-窗口、对话框等

最后一个组件WX提出了这个问题。我可以组装一个非常漂亮的应用程序(原型看起来很光滑),但当我需要与用户互动来提问、获取输入时,我必须使用WX。它使应用程序看起来不一致,传统的用户界面与传统的对话和组合,以及文字输入的全屏三维应用程序与混合,平滑的运动,纹理等

有人用OpenGL和python开发了GUI吗?你能和我分享一下你使用的工具箱和/或技巧吗?我需要组合,文本输入,按钮,收音机,选项按钮,树视图。

有一些工具包在那里,但它们要么不完整,要么陈旧,没有维护。一个很好的例子是pyUI(http://pyui.sourceforge.net/)-看起来很光滑,但多年来没有被触及过。


Tags: 数据应用程序图形游戏跨平台传统按钮opengl
1条回答
网友
1楼 · 发布于 2024-05-13 11:26:01

这不是一个答案,更多的是一个请求:请不要那样做。

重新实现的小部件将缺少用户会错过的所有功能。您的文本输入框是否支持拖放?复制/粘贴?从右到左的脚本?拖动选择?双击选择?所有这些机制是否都遵循您支持的每个平台的本机约定?

有了Wx,你的小部件可能看起来与应用程序不一致,但至少它们看起来与操作系统一致,这一点同样重要。更重要的是,他们会做用户期望的事情。

(编辑)三个职位,和-3分?去这该死的婊子窝。最初的海报:我在OpenGL中实现了一组基本的小部件(用于游戏UI),这是一个无尽的工作噩梦。

网友
2楼 · 发布于 2024-05-13 11:26:01

在QT的最新版本中,如果您真的想这样做的话,可以将widgets绘制到OpenGL上下文中。否则有些游戏引擎中会用到CEGui

除非你想陶冶自己,否则自己实现GUI小部件是浪费时间,除非你对最基本的外观和功能感到满意。

网友
3楼 · 发布于 2024-05-13 11:26:01

Python+Qt+OpenGL- 我相信使用python可以更快更好地编写任何应用程序。 QT4是跨平台的,美观的,从widgets(可访问性,等等)实现你所需要的一切,并且……它与OpenGL集成。这意味着,您可以简单地拥有一个小部件,它是您在代码中呈现的openGL内容的一个视区。

另一个支持3D的解决方案是用python脚本扩展Blender3D。它有3d功能和渲染,你可以用python编写脚本,而且它是跨平台的,而且你可以得到更高级别的工具来处理3d的事情,而不仅仅是openGL。 有明显的缺点,主要是从UI的角度来看,与PyQT相比,但这是可以做到的。

相关问题 更多 >