是否有任何优秀的GUI支持Pygame表面作为应用程序中的小部件?
如果这不可能或不实用,哪个GUI工具包具有最佳图形组件?我希望通过SDL包装器保持快速渲染。
答案 0 :(得分:10)
不要使用wxPython,很难与Pygame一起工作,如Pygame wiki的GUI section所述。
首先,pygame依赖于 SDL,这意味着它只能拥有 一次一个窗口。因此,试图 实现多个Gtk,Qt,...... 使用pygame的应用程序实例, 是不可能的。第二 问题的原因是那些 工具包使用自己的主循环, 这可能会迫使你管道 他们的事件到你的pygame实例 反之亦然。并提一些 简而言之:绘制 pygame窗口上的工具包元素 是不可能的和SDL / pygame 全屏模式会有问题。
相反,请选择该页面底部列出的任何库。我自己使用pgu。
答案 1 :(得分:6)
答案 2 :(得分:4)
Albow和Ocemp没有得到积极维护。 PGU现在由Peter Rogers维护,而Victor Kam已将其大部分转换为Python 3。
我尝试在Python 3下运行5个pygame GUI工具包:Albow,GooeyPy,PGU,pqGUI和sgc。 (我没有让GooeyPy使用Python 3,但其他人都这样做了。)
我通过一个简单的代码行计数器运行它们 http://code.activestate.com/recipes/527746-line-of-code-counter/ 衡量他们的规模:
结果如下:
Albow code min=2810, max=4551 (max = 162% of min)
Albow\demo min= 453, max= 649
GooeyPy\gooeypy min=2034, max=3941 (max = 194% of min)
GooeyPy\examples min= 178, max= 351
pgu\pgu min=2910, max=7047 (max = 242% of min)
incl. pgu\pgu\gui min=1678, max=4638 (max = 276% of min)
pgu\examples min= 822, max=2527
pqGUI.py min=1586, max=1834 (max = 116% of min)
Example.py min= 178, max= 225
sgc (incomplete) min= 889, max=1243 (max = 140% of min)
(我也想尝试一下Shandy Brown,但我找不到它。)
在每种情况下,“min”数字更能代表工具包的“大小”,因为它不计算空格和注释。
当“最大”数字非常接近最小数字时,意味着代码中没有太多空格和注释。 pqGUI举例说明了,因为它几乎没有任何评论,这太糟糕了,因为(IMO)它制作了最漂亮的小部件。
我喜欢pqGUI因为我喜欢它所做的小部件的外观,但是它不受支持且没有文档记录,我找不到作者。
五个中只有两个被积极维护/开发:PGU和sgc,sgc是新的和不完整的。
这使PGU成为明确的领导者。
戴夫
P.S。 (10/23/2012) - 我为PyGame创建了自己的GUI工具包。它是基于小部件的,并使用pygame事件进行通信,因此可以轻松地将其放入现有的pygame程序中,而无需接管事件循环。它支持表格,按钮,窗口,模态和非模态消息框&对话框,垂直菜单,文本输入框和滑块(滚动条)。它可以平滑地处理重叠控件和表单内的表单。
然而,它并不是真正完整的:它缺少一些你可能想要的控件,比如文件打开的对话框和表格。存在的控件看起来不错,但标题栏和标题之类的功能。滚动条是宽度上固定的像素数,而不是可调整大小。代码评论很好,并且有一个带有使用示例的演示应用程序,但是没有正确的使用文档。它是预测试版,所以一切都可能发生变化。
如果尽管有这些限制,有人想尝试一下,请通过电子邮件与我联系。询问“DavesGUI”。我的电子邮件地址位于:http://www.burtonsys.com/email/
答案 3 :(得分:1)