wxPython vs PyQt vs PyGTK: ¿cuándo y qué usar?


  • Necesita asesoramiento de aquellos que tienen experiencia mínima en salud para diseñar interfaces GUI con Python.
  • ¿Cuándo y qué elegir dependiendo de la complejidad de la interfaz gráfica de usuario?
  • ¿Qué constructores de GUI podemos usar para tener una mejor calidad de desarrollo?

Este es mi primer diseño de GUI, y lo he hecho sin GUI builder, en este momento apilado porque he entendido, que ObjectListView wrapper para wx.ListCtrl no tiene de forma nativa para incluir fácilmente la barra de progreso o el indicador elemento. (consulte la columna "Estado de carga" de la imagen).

Nota: ObjectListView tiene barra de progreso en la versión.Net, por el momento no en wx.Python.

P. S: He encontrado este maravilloso Python GTK + Full Stack Tutorial

introduzca la descripción de la imagen aquí

Author: Mike Driscoll, 2013-10-25

3 answers

No estoy muy seguro de lo que estás preguntando. wxPython y PyQt / pyside son probablemente los más fáciles de usar en todas las plataformas y se verán bien en la mayoría de los sistemas operativos. Sé que wxPython está específicamente diseñado para envolver los widgets nativos, así que si quieres que tu aplicación se vea nativa, creo que wxPython es el camino a seguir. Si quieres ser capaz de tema/piel de su aplicación, entonces PyQt o PyGTK puede ser mejor.

PyQt/PySide soporta mobile hasta cierto punto, lo cual no creo que los otros dos lo hagan. Si planee programar para dispositivos móviles, entonces es posible que desee ir por esa ruta o mirar Kivy.

PyQt/PySide tiene un editor WYSIWYG bastante poderoso. wxPython tiene un par, pero no creo que ninguno de ellos soporte todos los widgets de wx y su apoyo es irregular. Eso no me ha detenido ya que hago toda mi codificación a mano de todos modos.

Como de costumbre, es probable que necesite leer mucha documentación y probar cada una de ellas para ver cuál se adapta mejor a su cerebro y satisface sus necesidades.

 21
Author: Mike Driscoll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-25 13:31:19

No utilice PyGTK si desea compatibilidad multiplataforma. GTK3 aún no funciona en Windows (la última vez que lo comprobé) y GTK2 tiene una terrible pérdida de memoria bajo Windows que se ha corregido en la última fuente, pero no se ha compilado ninguna nueva versión para Windows.

Pondría mi voto con PySide (licencia más flexible para opciones comerciales) sobre PyQt y PySide/PyQt sobre wxPython simplemente porque creo que la herramienta de diseño de GUI es mejor! Ser capaz de crear y editar rápidamente la interfaz gráfica de usuario gráficamente (e independientemente del código de su aplicación) es un gran ahorro de tiempo.


Actualización: En realidad, recomendaría PyQt sobre PySide ahora por razones de estabilidad y soporte a largo plazo. El desarrollo de PySide está retrasado, hay muy pocas personas arreglando errores y nadie trabajando en soporte para Qt 5.

 14
Author: three_pineapples,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-17 23:26:24

PyQt en Windows

PyQt en Windows

PyGTK

PyGTK

PyQt en KDE

PyQt en KDE

  1. PyQt en Windows
  2. PyGTK + 3
  3. PyQt en KDE

Así que si vas con PyQt el diseño de tu aplicación se verá diferente en los diferentes sistemas operativos y entornos de escritorio. No tengo Macintosh, así que no puedo proporcionar una imagen de cómo se verá mi aplicación en ella. Esta es una de mis aplicaciones escritas en PyQt y PyGTK + 3. Tenga en cuenta que el diseño se mantendrá como está con PyGTK+3, por lo que no habrá diferencias como en PyQt. Definitivamente es el más fácil de aprender, ya que hay un programa Glade que te ayudará a construir tu diseño sin gastar ni un minuto en codificarlo manualmente. Pero con PyQt puede ajustar el diseño de la aplicación y no lo obligará a romper su oído de los errores.

 10
Author: HexSFd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-10 20:08:27