¿Existe algún marco estándar para desarrollar aplicaciones de interfaz gráfica de usuario de Python?

20

Hay tantos marcos para escribir aplicaciones GUI usando Python. ¿Pero hay algún marco estándar clave? Por ejemplo, tenemos un paquete de .NET / C # en Visual Studio.

Estoy pensando en otras perspectivas también. En el futuro, si doy una entrevista para un trabajo de programador de Python, ¿qué marco de GUI se considerará?

También me pregunto, no hay IDE que integre la GUI y el lenguaje Python. La elección del sabor es buena, pero la elección excesiva se convierte en una distracción.

RPK
fuente
No. No hay un "estándar". .NET no está estandarizado. No hay un cuerpo de estándares que haya escrito un estándar para .NET. Hay un estándar para C #: ecma-international.org/publications/standards/Ecma-334.htm . ¿Quizás "estándar" no es lo que quieres decir?
S.Lott
@ S.Lott: Perdón por ese término confuso. Quise decir algo diferente. Para las aplicaciones .NET, Visual Studio es la mejor herramienta todo en uno que incluye el generador de GUI y otras cosas. Rara vez las personas buscan alternativas de VS.NET. Me refería a un término similar. Cualquier IDE de Python donde finalice la búsqueda de una solución completa todo en uno.
RPK
¿Estás preguntando por el IDE (como Visual Studio)? Si es así, entonces "marco" es la palabra incorrecta en la pregunta. Por favor aclare lo que está pidiendo.
S.Lott
@ S.Lott: No, no estoy preguntando sobre Visual Studio. Déjame aclarar. Tomemos, por ejemplo, ASP.NET. Es un marco pero se integra muy bien en Visual Studio IDE. Tienes todas las herramientas disponibles en la mesa central. ¿Hay algo para Python?
RPK
Visual Studio es un IDE == todas las herramientas para el desarrollo en un solo lugar. "No estoy preguntando sobre Visual Studio" es exactamente lo contrario de "Tienes todas las herramientas disponibles en la mesa central. ¿Hay algo para Python?". O está preguntando sobre el IDE (la versión Python de Visual Studio) o está preguntando sobre el marco en sí. O tal vez estás preguntando sobre ambos. Es muy difícil entender de qué se trata la pregunta. Por favor, actualice la pregunta a estado muy claramente lo que quiere.
S.Lott

Respuestas:

12

Puede escribir aplicaciones Win32 API GUI en Python, si le gusta escribir todo ese código repetitivo : proyecto PyWin32

Personalmente, me gusta wxPython . Es multiplataforma (totalmente compatible con Linux y Windows) y ha existido durante bastante tiempo ... base de soporte decente y mucha documentación / código de ejemplo. Si desea usar esto, eche un vistazo a BoaConstructor . Ese es el IDE para wxPython (o quizás mejor dicho, un IDE escrito en y para wxPython). Es el único RAD IDE específicamente para Python con el que me he encontrado que vale la pena mencionar, salvo el editor Qt UI (el editor Ut de Qt es utilizable tanto para C ++ como para PyQT).

Como Peter mencionó en su respuesta, Tk es la GUI de facto para las aplicaciones antiguas de Python, pero realmente no se ven tan bonitas para el usuario final. Hay algunas extensiones que lo hacen ver un poco mejor y brindan cierta capacidad para diseñar la interfaz de usuario, pero a menos que esté manteniendo una aplicación GUI anterior, no sugeriría molestarse con ella.

pyGTK, también ya mencionado, sería otra buena opción. También es multiplataforma, aunque no he tenido ninguna experiencia personal con el desarrollo de GTK en Windows. PyQT sería una mejor opción, en mi opinión: creo que las GUI creadas con la biblioteca Qt tienen un aspecto y una función superiores a las realizadas con GTK. También encuentro que el mecanismo de evento de señal / ranura de Qt es más fácil de trabajar. YMMV.

Realmente no hay ningún estándar para el desarrollo de la GUI de Python, al menos no lo que he visto, pero de mis colegas desarrolladores de Python con los que he trabajado a lo largo de los años, me han sugerido wxPython y PyQT más que ninguno de los otros kits de herramientas No estoy seguro de si hay un número considerable de puestos de desarrollo de interfaz gráfica de usuario de Python, para ser honesto. La mayor parte del desarrollo de Python que he realizado a lo largo de los años ha sido del lado del servidor, pero eso no quiere decir que no haya varias empresas que ahora busquen la ruta de código abierto para sus aplicaciones GUI.

Será
fuente
Se puede hacer que las aplicaciones de Tkinter se vean bastante aceptables, a menudo casi indistinguibles de las aplicaciones nativas, si simplemente se toma el tiempo para hacerlo. Sin embargo, estaré de acuerdo en que wxPython se ve mejor sin ajustes. Personalmente, todavía prefiero Tkinter porque parece lo suficientemente bueno para la mayoría de las personas, y mi productividad es más alta que con wxPython.
Bryan Oakley
Tk (Tkinter) no es compatible con Unicode completo (por ejemplo, configuración de script) si planea desarrollar una aplicación l10n / i18n.
user.dz
12

Tk solía ser el estándar, pero podría decirse que es simplista y feo. Entonces Qt se hizo bastante popular. Gtk también es posible, y eso cubre los favoritos en las plataformas Linux-ish.

Pero tienes razón, realmente no hay una respuesta obvia. La sobre elección es bastante común en el mundo del código abierto, después de todo.

Peter Eisentraut
fuente
44
Elegiría Qt solo porque se ve mejor que Gtk
TheLQ
1
+1 para una respuesta completa. Qt es agradable y potente, y están disponibles dos enlaces (en cuanto a licencia).
ChristopheD
Podría decirse que ya no es MIRANDO feo en Windows. Aún así, no me gusta cómo se ve el código que tiene que escribir. Código feo. Apariencia, puramente nativa, y bastante razonable, por fin.
Warren P
5

No hay un 'estándar' y estoy de acuerdo: la gran cantidad de opciones es un dolor. En cuanto a un IDE de 'herramientas bidireccionales' integrado para Python GUI, también me pregunto por qué parece que no hay ninguno, tal vez porque hay tantos kits de herramientas de GUI que nadie quiere invertir en un IDE para solo uno de ellos.

Dicho esto, PyQt 4.7 con P3k le proporcionará una GUI maravillosa (así como muchas otras características potentes). Consulte http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html - "Esta es la guía de referencia para PyQt 4.8.4. PyQt v4 es un conjunto de enlaces de Python para v4 del Qt marco de aplicación de Nokia ".

PyQt está en uso generalizado y hay algunos buenos libros: consulte http://www.qtrac.eu/pyqtbook.html "Programación rápida de GUI con Python y Qt", entre otros (el libro está un poco desactualizado, necesita actualizarse) para P3k).

Hay 2 problemas serios con PyQt:

1) Tiene algunas características claramente `` no pitónicas '', siendo solo una envoltura delgada en las bibliotecas C ++ Qt. Pero recomendé P3k-PyQt 4.7 porque algunos se han abordado en los paquetes 'más recientes y mejores'. Mira esta publicación:

Problemas de diseño de PyQt

2) Para uso comercial, existen tarifas de licencia bastante altas, tanto para PyQt como para Qt.

Una alternativa prometedora a PyQt es PySide de Nokia, otro contenedor de Python para Qt que es completamente de código abierto (aunque eso no incluye la licencia Qt).

Saber mucho sobre Qt no es algo malo en el mercado, y lo obtendrá de PyQt, por lo que le tendré que considerarlo seriamente (o PySide) si está tratando de decidirse por una plataforma GUI para convertirse en experto en .

Independientemente de lo que elija, sugeriría evitar tkinter en su mayor parte, a pesar de que está `` listo para usar '' con Python, porque es extremadamente limitado, y la OMI tiene un aspecto crudo y anticuado.

HTH

Vector
fuente
3

pyGTK es prolífico. Es bastante fácil de usar y hace que las GUI no se vean medio mal.

dan_waterworth
fuente
¿Cuán rica es la comunidad? ¿Qué tan rápido llegan las respuestas en su foro?
RPK
1
@RPK, no tengo idea, nunca he tenido que pedir ayuda, todo es bastante fácil de usar.
dan_waterworth
No estoy seguro de que "prolífico" sea la palabra correcta. "produce descendencia, cría, fruta, etc., en abundancia; muy fructífera: un prolífico peral" Quizás "popular" o "fabuloso".
S.Lott
@ S.Lott, prolífico: "Produciendo resultados o trabajos en abundancia de manera similar". (segunda definición wiktionary). "Sirviendo para producir; fructífero de resultados; activo; como, un cerebro prolífico; una controversia prolífica del mal". (Diccionario Revisado de Webster (1913 + 1828))
dan_waterworth
prolífico como en "pyGTK produce muchas aplicaciones?" Parece tenso. La gente produce aplicaciones. pyGTK es una base popular, tal vez, pero no parece ser el productor.
S.Lott
0

Gtk3 es un marco GUI que es muy maduro. Tiene enlaces nativos de Python (GObject Introspection) y mucha documentación . Si está haciendo bastante GUI, considere usar Anjuta . Anjuta tiene una interfaz de arrastrar y soltar para configurar sus widgets fácilmente.

WxWidgets es bastante bueno, sin embargo, no hay una manera fácil de generar devoluciones de llamada de Python generadas dinámicamente como lo hace Anjuta para Gtk.

PyGtk ahora está en desuso en favor de los enlaces Gtk3 a Python (Introspección GObject)

PyQt también es un jugador en Python GUI, pero no tiene una gran comunidad.

BoaConstructor se mantiene por más tiempo y sería una tontería usarlo.

theGtknerd
fuente