如何在Linux下使用Python创建具有酷炫动画效果的GUI应用程序(如Cooliris的3D墙、compiz特效等)

3 投票
2 回答
4777 浏览
提问于 2025-04-15 23:04

我不确定我的问题标题对你们来说是否有意义。我看到很多很酷的应用程序,它们有很棒的动画和效果。我想学习如何在Linux下用Python创建这种图形用户界面(GUI)应用。

像Cooliris中的3D墙那样的“酷动画/效果”,它是用Flash写的,还有用OpenGL实现的Compiz效果。

我还听说过一些Python的GUI库,比如wxPython和pyQT。因为我对Python的GUI编程完全是新手,有没有人能建议我从哪里开始,应该学习什么才能实现和创建这样的应用?也许可以学习带有OpenGL功能的pyQT?或者pyOpenGL绑定?我完全不知道从哪里入手。非常感谢你的时间和建议。

顺便说一下,如果有人想知道我打算创建什么样的应用,那就是任何类型的应用。可能是带有3D墙的照片浏览器,可能是即时通讯客户端,可能是Facebook客户端等等……

2 个回答

0

也许,只要创建一个图形用户界面(GUI),所有的效果就可以通过Compiz来实现?

不管怎样,我知道QT可以使用OpenGL。

http://doc.qt.nokia.com/4.1/examples.html#opengl-examples

3

很多KDE的风格使用的是SVG和丰富的动画效果。用户总是可以更换主题。我觉得你应该更具体地说明你想做什么样的动画。我认为3D墙面类型的效果并不完全属于QT的控件范畴。听起来你是想为一个应用程序制作一个3D界面。如果是这样的话,你可能需要更多地了解那些主要用于游戏的3D引擎库。我知道有些引擎提供了很棒的图形用户界面控件,可以用来编程游戏菜单等。我想你可以先决定使用哪个引擎,然后看看是否有Python的接口。我最喜欢的引擎之一是:http://irrlicht.sourceforge.net/links.html

你还需要考虑的是如何处理窗口管理。你想要做一个全屏的界面吗?还是说要做成窗口形式?另外,这样的应用程序如何与3D窗口管理器结合,或者说与一个支持合成的窗口管理器结合呢?

编辑:

在这种情况下,qtopengl模块可能是一个值得关注的方向:http://doc.qt.nokia.com/4.6/qtopengl.html

我确实推荐QT。它干净、易用,而且跨平台。所以你的应用程序也可以在Windows上运行。

在开始之前,你需要考虑一下你想要实现的特效类型。例如,如果你想在重命名图像时创建一个翻页效果,你就得考虑如何编程实现这个效果,或者寻找可以实现这个效果的库或代码片段。用于游戏的3D引擎通常对这些典型的特效或动画有很好的支持。如果你使用像qtopengl这样的工具,你也需要考虑这一点。qtopengl基本上只能进行渲染,可以把它想象成一个视口。不过,这确实是制作桌面3D应用程序的正确方法。

编程3D应用程序真的很有趣,也很好玩。我非常喜欢。不过,不要因为数学而感到沮丧。如果你认真对待这个领域,我建议你找一本相关的书。我喜欢这本:http://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119

不过,如果我没记错的话,里面的例子是C++,这可能让你觉得不太舒服。当你理解了这些数学概念后,就更容易想象如何制作翻页效果。当然,如果你找到的库或代码能告诉你如何进行这些数学运算,那也是可以的。

撰写回答