【问题标题】:GUI with PyGame带有 PyGame 的图形用户界面
【发布时间】:2017-08-22 20:45:08
【问题描述】:
我用 Python 和 PyGame 制作了一个 GUI,我想从现在开始制作更具未来感的 GUI。在制作这个特定的 GUI 时,我发现 PyGame 可能不是最佳选择,因为用户事件的数量有限并且绘图质量低,我的意思是在图像中的停止按钮旁边绘制的弧线,有未绘制的像素。
我想知道的是:
- 我误认为 PyGame 不适合这个,我还应该使用 PyGame 吗? - 也许我不应该使用绘图而应该使用图像,但随后就失去了改变颜色的能力。
- 我应该学习 OpenGL 并制作自己的对象和交互吗?
- 也许 Python 不是最合适的工具,该工具可以是 C++ 和 OpenGL 还是 DirectX?
使用 Python 的最大优点是易于实现,我创建了一个简单的程序,该程序从网站获取数据并使用 Pandas 将其保存为 CSV 文件。这个 GUI 只是为了显示进度条,并有一个开始按钮,用于在另一个线程中执行 main 函数,因此 GUI 不会停止。
【问题讨论】:
标签:
python
user-interface
opengl
pygame
directx
【解决方案1】:
看看here 和here,这可能是使用 DirectX 渲染 GUI 的最快设置。还可以查看示例,也许那里有关于渲染 UI 的内容。
DirectX 编码确实很耗费时间,OpenGL 3+ 也是如此,但 DirectX 以 SpriteBatch 的简单性取胜。另一方面,OpenGL 有用于即时绘制的旧版绑定,因此您可以只告诉点形成多边形并用纹理填充它们,而无需创建缓冲区或其他任何东西,但我会坚持使用 DirectX。
然而,您必须实现用户输入,例如将鼠标悬停在元素上以显示一些信息,这也很重要(需要管理几何图形和东西),考虑使用一些现成的库,例如 CEGUI。
【解决方案2】:
你是对的,PyGame 并不是你想要的,但是很多人已经为用 python 制作游戏制作了非常广泛的模块。此外,python 是像 C 一样的跨平台编程语言这一事实也很棒。唯一的挫折是如果你想让这个程序独立。很少有计算机预装了 python 3.6(我否认 MacOS 已经安装了 python 2.7 的事实),并且许多允许您将脚本构建到独立应用程序中的模块不支持 python 3.6。
您可以将 C++ 与 OpenGL 或 DirectX 一起使用,但这些工具使用起来有点困难,现在我不知道您在编码方面有多先进,以及您是否想让您的应用同时适用于 MacOS 和 Windows移植应用程序需要大量工作。
这取决于你,我希望我有所帮助!
宙斯先生