Как использовать python для создания приложения с графическим интерфейсом, в котором есть отличная анимация / эффекты под Linux (например, 3D стена в Cooliris, эффекты compiz и т. Д.) - PullRequest
3 голосов
/ 24 мая 2010

Я не уверен, имеет ли смысл название вашего вопроса для вас или нет. Я вижу много крутых приложений, которые имеют классные анимации / эффекты. Я хотел бы узнать, как использовать python для создания такого рода приложений с графическим интерфейсом под Linux.

"крутая анимация / эффекты", такие как 3D стена в Cooliris, которая написана на flash и скомпилированные эффекты с opengl.

Я также слышал о некоторых библиотеках Python GUI, таких как wxPython и pyQT. Поскольку я совершенно новичок в программировании на Python GUI, кто-нибудь может подсказать мне, с чего начать и чему я должен научиться, чтобы достичь и создать такое приложение? возможно узнать pyQT с помощью функции openGL? пиопенгл привязка? Я понятия не имею, с чего начать. Большое спасибо за ваше время и предложение.

Кстати, на случай, если кому-то понадобится узнать, какое приложение я собираюсь создать, ну просто любые приложения. может быть фото исследователь с 3D стеной, может быть IM-клиент, может быть Facebook-клиент и т. д.

Ответы [ 2 ]

3 голосов
/ 24 мая 2010

http://techbase.kde.org/Development/Languages/Python

Многие стили KDE используют SVG и много анимации. Пользователь всегда может менять темы. Я думаю, вы должны быть более конкретными о том, какие анимации вы хотите сделать. Я не думаю, что эффекты типа 3D-стены действительно попадают в категорию виджетов, к которой относится QT. Для меня это звучит так, будто вы хотите создать 3D-интерфейс для приложения. Если это так, вы, возможно, захотите больше взглянуть на библиотеки типов 3D движка, используемые в основном в играх. Я знаю, что у некоторых есть отличные графические виджеты для программирования игровых меню и тому подобное. Я полагаю, вы бы выбрали свой движок и посмотрите, есть ли привязки языка Python. Один из моих любимых двигателей: http://irrlicht.sourceforge.net/links.html

Еще одна вещь, которую вы хотели бы рассмотреть, это то, как вы хотите управлять окном. Хотите сделать полноэкранный интерфейс? Или это должно быть в окно? Также, как такое приложение могло бы интегрироваться в 3D-менеджер окон или, скорее, в менеджер окон с композитингом.

Edit:

В этом случае модуль qtopengl, вероятно, стоит рассмотреть: http://doc.qt.nokia.com/4.6/qtopengl.html

Я рекомендую QT. Это чистый и простой в использовании и кроссплатформенный. Так что ваше приложение может работать и на Windows.

Одна вещь, о которой вы хотели бы подумать, прежде всего, это тип FX, который вы хотите выполнить. Например, если вы хотите создать эффект типа скручивания страницы при переименовании изображения, вам придется подумать о том, как его запрограммировать, или искать библиотеки / фрагменты кода, которые выполняют эту математику. 3D движки, которые используются в играх, часто имеют большую поддержку для тех типичных эффектов или анимаций, которые вы бы видели в игре. Если вы используете что-то вроде qtopengl, вам нужно подумать и об этом. Qtopengl может только сделать. Думайте об этом как о смотровом окне. Однако это правильный подход к созданию 3D-приложения для рабочего стола.

Программирование 3D-приложений действительно интересно и увлекательно. Я наслаждался этим много. Тем не менее, не отчаивайтесь быть математикой. Я рекомендую получить книгу об этом, если вы серьезно. Мне понравилось это: http://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119

Тем не менее, IIRC примеры - C ++, который может вас не устраивать. Когда вы понимаете такие математические понятия, вам легче подумать, как бы вы повлияли на тип завитка страницы. Конечно, если вы найдете библиотеки или код, который покажет вам, как выполнять математику, это может подойти.

0 голосов
/ 24 мая 2010

Может быть, просто создайте графический интерфейс и все эффекты сделают compiz?

В любом случае, как я знаю, QT имеет возможность использовать openGL.

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

...