3

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

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

最后一个组件——WX——提出了这个问题。我可以组装一个非常漂亮的应用程序(原型看起来很漂亮) - 但是当我需要与用户交互以提出问题、获取输入时,我必须使用 WX。在具有混合、平滑运动、纹理等的全屏 3D 应用程序之上具有带有传统对话框和组合以及文本输入的传统 UI,这使得应用程序看起来不一致。

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

那里有一些工具包,但它们要么不完整,要么陈旧且未维护。一个很好的例子是 pyUI ( http://pyui.sourceforge.net/ ) - 看起来很漂亮但多年来没有受到影响。

4

9 回答 9

12

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

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

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

(编辑)三个帖子和-3分?搞砸这个业力妓女的巢穴。原始海报:我已经在 OpenGL 中实现了一组基本的小部件(用于游戏 UI),这是一项永无止境的噩梦。

于 2008-09-16T23:41:09.497 回答
7

在 QT 的最新版本中,如果您真的想做类似的事情,您可以将小部件绘制到您的 OpenGL 上下文中。否则,某些游戏引擎中会使用CEGui

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

于 2008-09-26T10:21:40.307 回答
3

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

另一个可以覆盖大部分内容但在用户界面上不那么友好的 3D 解决方案是使用 python 脚本扩展 Blender3D。它具有 3d 功能和渲染功能,您可以在 python 中编写所有相同的脚本,并且它将是跨平台的 - 您可以获得比单独使用 openGL 更高级的工具来处理 3D 事物。与 PyQT 相比,主要从 UI 的角度来看,有明显的缺点,但它可以做到。

于 2008-09-17T00:14:41.617 回答
1

你可能想看看Clutter,它看起来很酷。我还没有使用它,但我打算在即将到来的个人项目中使用它。

于 2008-09-16T23:39:31.263 回答
1

尝试 Qt 而不是 wx。

QT 是跨平台的,您可以使用 CSS 设置很多样式。它的文档非常好,并且具有出色的 python 绑定。事实上,我使用的是 C++ 文档而不是 PyQT 文档。

于 2008-09-16T23:57:37.070 回答
1

wx 和 QT 在创建与操作系统外观和感觉相匹配的应用程序方面做得非常出色。也可以直接在 openg 中自己实现所有小部件,这个 slashdot 帖子列出了一些可用的集合

http://ask.slashdot.org/askslashdot/02/12/24/1813219.shtml?tid=156 fox 可能是最发达的,但在所有平台上看起来都像 Windows。

于 2008-09-17T17:14:16.907 回答
1

Blender 是我所知道的唯一一个使用完全用 OpenGL 编写的 GUI 的应用程序……唯一的问题是它是用 C++ 编写的。

我也是一名 Python 开发人员,但我刚刚开始使用 OGL

老实说,我不认为有任何工具包可以在 OGL 中开发 GUI ......

Blender 开发人员正在给我运行文档而不是直接帮助......但我会让你知道我想出什么;)

编辑:这里有一些关于 PyOpenGL 功能的文档:http: //pyopengl.sourceforge.net/documentation/manual/reference-GLUT.html

于 2011-10-08T13:59:37.573 回答
0

cegui ”是一个不错的选择,还有一个名为“ceed”的 gui 编辑器来生成布局 xml 文件。cegui 也有 python 绑定及其有据可查的文档并在许多游戏引擎中使用

于 2014-10-21T11:18:49.700 回答
-2

我的朋友。
我相信我找到了你的答案;)
http://glinter.sourceforge.net/

我还没有尝试过,但它似乎很有希望。(如果它不起作用,我会编辑它)

编辑:
嗯……
它使用 Tk、PMW 和 WX……
(不是我想要的)

你可以试试 CVS 下载...
(没有发布的包,但 CVS 运行)

于 2011-10-08T14:50:03.933 回答