2009-08-31 12 views
11

Pregunta rápida.Creación de GUI con Python en Linux

Estoy usando Linux y quiero intentar hacer una GUI con Python. He oído hablar de algo como Qt, GTK + y PyGTK, pero no sé qué son exactamente y cuál es la diferencia entre ellos.

¿Existe alguna diferencia en cómo funcionan con diferentes DEs como GNOME, KDE, XFCE, etc.? ¿Hay algún IDE que le permita crear GUI como lo hace Microsoft Visual Studio (para C#, C, Visual Basic, etc.)?

¿O debería usar otro idioma que no sea Python para hacer aplicaciones GUI?

Respuesta

12

Su primer paso debe ser http://wiki.python.org/moin/GuiProgramming

Algunos juegos de instrumentos integrarse mejor en un entorno sobre el otro. Por ejemplo, PyQt, PyKDE (y el nuevo PySide) se reproducirán mejor en un entorno KDE, mientras que las versiones GTK (incluidos los WX-widgets) se combinarán mejor en los escritorios GNOME/XFCE.

Debería mirar el entorno al que desea enfocar. Puede optar por un kit GUI básico portátil, o puede realizar una integración más profunda con tour DE, como el uso del administrador de contraseñas integrado y los analizadores de archivos de configuración, que están integrados en un DE específico como KDE o GNOME.

También debe considerar la dependencia que dicta su selección, y lo que viene por defecto con un DE básico. Por ejemplo, PyKDE en la rama KDE 3.X tenía un conjunto no trivial de dependencias, mientras que en la rama 4.X, el enlace de plasma hacía que la dependencia de programación de la GUI de Python no fuera un problema.

Existen varias herramientas IDE, en diferentes niveles de completitud y madurez. Lo mejor es probar uno o más y ver qué se adapta mejor a tus necesidades.

+4

Wow ... seguro que hay muchos fotogramas allí. ¿Cómo se supone que voy a descubrir cuál es el mejor para mí? –

+2

@Baldur, ¿cuál es su principal plataforma prevista? Para Gnome, GTK (o wx si desea una capacidad de plataforma cruzada razonable para Windows y, en menor medida, Mac); para KDE u otros administradores de ventanas, Qt (también te brinda una excelente capacidad para plataformas cruzadas); solo para Mac, PyObj y Cocoa; solo para Windows, sugiero IronPython (y Windows Forms ... o lo que sea que la última y mejor oferta de GUI .NET sea ;-). –

+0

Supongo que mi plataforma principal sería GNOME, ¿entonces debería usar GTK? GTK trabaja con Python o tiene que usar PyGTK, estoy algo confundido –

2

Cada entorno de escritorio utiliza un conjunto de herramientas específico para compilar sus componentes. Por ejemplo, KDE usa Qt y GNOME usa Gtk.

El uso de un conjunto de herramientas dependerá del tipo de entorno de escritorio al que se dirija, y si desea orientarlo a una amplia gama de escritorios, utilice un kit de herramientas que funcionará en muchos entornos de escritorio, como Wx widgets que funcionará en Linux, Mac OS y Windows. Para construir aplicaciones GUI simples, Tkinter lo hará.

+0

¿Funciona Tkinter en muchos DEs? ¿Por qué GNOME utiliza Gtk y KDE usan Qt cuando ambos podían usar Wx widgets, viendo cómo funciona Wx en casi todo? ¿Hay alguna diferencia en lo buenos que son? –

+1

Porque Wx es feo ;-) En serio, creo que Qt es difícil de superar por la combinación de facilidad de programación y apariencia visual. Pero todos tendrán su propia opinión. –

+2

Algunos escribieron que B era mejor que A, y algunos escribieron que D era mejor que A y B, pero como D trató de "trabajar con todo" fue complejo que A y B. Al final, algunos se quedaron con A o B, a algunas personas les gustó D, y algunas más siguieron adelante y encontraron que E es mejor que A, B y D. Ahora tienes 4 opciones, ABD o E :) – Parthan

4

Evitaría usar otro idioma para hacer una GUI para Python.

He tenido mucha suerte con wxwidgets, que es el enlace de pitón para WX, un sistema de desarrollo multiplataforma. Es bastante fácil de aprender y bastante poderoso. El problema con wxwidgets es que no está instalado de manera predeterminada, por lo que los usuarios deberán instalarlo en cada plataforma en la que deseen ejecutar la aplicación. Encuentre más información al respecto en http://wxwidgets.org/.

Si desea que las personas puedan usar su programa sin instalar nada más, use Tkinter, el sistema de GUI que viene con Python.

Evitaría los enlaces de Python para GTK o KDE a menos que ya conozca esos sistemas. También necesitan ser descargados, y no parecen tener tanta adopción como wxwidgets.

+0

no si lo compila>: D –

0

Uso PyGTK.Tan importante como el toolkit son sus fundamentos, con PyGTK también usa GLib, con sus abstracciones del sistema de archivos (python module gio) que son muy importantes para el escritorio Linux, sus funciones de escritorio cruzadas de alto nivel como glib.get_user_data_dir() y su otra aplicación herramientas de framework, y GObject y su modelo de propiedad y señales.

Cuestiones relacionadas