tutorial examples español course python user-interface qt5 pyqt5

python - examples - ¿Hay algún tutorial específicamente para PyQt5?



pyqt5 tutorial (3)

A medida que continúen mis viajes a las profundidades de PyQt5, también voy a continuar actualizando esta respuesta con algunos de los tesoros más brillantes que encuentro.

Una vez dicho esto, ahora estoy tomando una "puñalada" en una introducción rápida a PyQt5. También proporcionaré enlaces a recursos útiles. También soy nuevo en este marco y elaboraré una estrategia que creo que es una buena estrategia para usarla, mientras imagino esa estrategia. Probablemente haya otras buenas estrategias, de modo que si alguien tiene algo que agregar, por favor deje un comentario. Esto es mucho más un trabajo en progreso.

Estrategia

Aprendí mucho del código de ejemplo como se sugiere en la otra respuesta, pero algo que los ejemplos no ayudan es la magia profunda de PyQt5. Los marcos con mucha magia en ellos (PyQt5, Django, SQLAlchemy, ...) son geniales porque una enorme cantidad de trabajo pesado se abstrae de usted. Por otro lado, no siempre está claro qué demonios está pasando, o qué se supone que debes hacer al respecto.

Afortunadamente, parece que tenemos opciones:

  • QtDesigner : para aquellos días en que su teclado se dispara, hay un generador de GUI rockin llamado en el paquete de instalación. Cuando vea el código que esto produce (¿tal vez solo en la versión de la comunidad?), Verá por qué esta puede no ser la panacea que parece.

  • QML : Otro candidato para panacea: creación de GUI declarativa a partir de JSON formateado. Mmm

  • Qt Quick : el marco para QML. En este punto, puede parecer tentadoramente fácil, pero no te dejes absorber por estas cosas todavía. Siempre parece reducirse a aprenderlo a mano.

  • El marco de Model-View (1) : Model-View (no MVC) separa el código que trata la presentación / interacción del código que administra los datos, con el objetivo de proporcionar modularidad.

La codificación en PyQt5 se simplifica enormemente al usar el conjunto de clases que implementan el patrón de diseño de Vista de modelo . Model-View es una evolución de Model-View-Controller (MVC), en la cual el Controlador se ha reunido con la Vista. Parecen extraños compañeros de cama, pero la mayor parte de la lógica del programa es tratar con el usuario o con los datos: parece tener cierto sentido, al menos a un nivel estratosférico.

Desde el ojo de un pájaro:

Arquitectura (s)

Modelo-Vista-Controlador

Este patrón de diseño ampliamente utilizado separa la aplicación en 3 capas:

  1. Modelo ~> Encapsula los datos. Notifica a View y Controller cualquier cambio en los datos subyacentes. Esto causa actualizaciones a la visualización de salida o comandos disponibles, respectivamente.
  2. Ver ~> Muestra la salida relevante del Modelo para el usuario.
  3. Controlador ~> Encapsula la interacción del usuario y notifica el Modelo y la Vista de eventos relevantes.

Modelo-Vista

  • El Marco de Vista de Gráficos (1) ~> Representa todo (incluyendo QWidgets incrustados, etc.) dentro de un QGraphicsScene como QGraphicsItem (o derivado del mismo), incluidas las clases proxy para incrustar widgets. Supuestamente, los ítems están altamente optimizados, y la integración del soporte de OpenGL es unidireccional, lo cual es agradable.

Este patrón de diseño coloca el controlador dentro de la vista. De esta manera, la vista es capaz de manejar la totalidad de la interacción del usuario. En términos concretos, estos son los mecanismos de Señales y Tragamonedas.

Manejo de Interacción del Usuario

Devolución de llamada

Señales y ranuras

..... ** Lo siento, pero debo cerrar la sesión ahora. Regresaré para continuar agregando a esto. **

Ejemplo (s) práctico (s)

Como, por ejemplo, puede tomar una vista en árbol del ejemplo itemviews/editabletreemodel , luego intercambiar en un modelo de sistema de archivos ( QFileSystemModel ) desde el ejemplo itemviews/dirview y tiene una vista completa (de trabajo) de su árbol de directorios. Bastante elegante.

Entonces, tomarías el código del ejemplo editabletreemodel:

headers = ("Title", "Description") file = QFile('':/default.txt'') file.open(QIODevice.ReadOnly) model = TreeModel(headers, file.readAll()) file.close() self.view.setModel(model)

... y cambiar el modelo de dirview:

model = QFileSystemModel() model.setRootPath('''') self.view.setModel(model)

... y simplemente funciona. Asombroso.

El siguiente paso (en mi caso) (* Creo) es implementar un modelo personalizado que luego usaré varias vistas al mismo tiempo, pero no sé si ese algo se ajusta a su caso de uso.

Recursos

Aquí hay algunas gemas que encontré en mis viajes. Espero que te ayuden en el tuyo.

Este es un tutorial sobre Model-View para Qt5. (1) Es un documento muy detallado de los documentos oficiales Qt5. Una buena cantidad de documentación útil se puede encontrar en el sitio Qt5. Tenga en cuenta que es para Qt5 (la biblioteca de C ++), pero la diferencia es trivial de leer (y los documentos oficiales de PyQt5 señalan allí de todos modos).

QtDesigner Tenga en cuenta que es para PyQt4 (no PyQt5), pero en realidad es para Python (en comparación con C ++), y descubrí que enseguida me enseñó mucho.

Estoy empezando a jugar con la Vista de Gráficos, y estoy encontrando este tutorial en el Marco de Vista de Gráficos muy útil. Esta es la misma Vista que se usa en el código de ejemplo qtdemo para generar algunos efectos qtdemo . Voy a actualizar esto en un momento.

Esta es una lista completa de todos los módulos Qt5.

Esta es una lista completa de todas las clases Qt5.

Esta es una lista completa de todas las funciones en la API de Qt5.

Como Kather señaló en los comentarios de otra respuesta, aquí hay un enlace al código de ejemplo para PyQt5.2.1 en GitHub

Además, una copia del código de ejemplo viene empaquetada con su distribución y se puede encontrar en:

%PYTHON_HOME%/Lib/site-packages/PyQt5/examples

Si está usando PyDev (Eclipse), puede ejecutar ejemplos simplemente haciendo clic derecho en el archivo del módulo principal de un ejemplo en PyDev Package Explorer o Navigator =:> Ejecutar como =:> Python Run

El mejor, en mi (no tan) humilde opinión, es:

%PYTHON_HOME%/Lib/site-packages/PyQt5/examples/qtdemo/qtdemo.py

Entre mis proyectos actuales, estoy en el proceso de ingeniería inversa este ejemplo. Si lo comprueba, verá por qué. Continuará.. ;)

¡Disfrutar!

Estoy buscando un tutorial de PyQt5. Es bastante complicado comenzar el desarrollo de la GUI con Python por primera vez sin un tutorial.

Solo encontré algunos tutoriales de PyQt4 hasta el momento, y como algo cambió de Qt4 a Qt5, por ejemplo, el hecho de que SIGNAL y SLOT ya no sean compatibles con Qt5, sería bueno tener tutoriales específicos para PyQt5.

¿Puede alguien proporcionar un tutorial sobre cómo iniciar el desarrollo de la GUI con PyQt5?



Estado buscando tutoriales PyQt5 por algún tiempo? ¡No busque más! No encontrarás muchos en internet.

No son realmente tutoriales, sino scripts básicos que se explican por sí solos en la siguiente ruta:

/ python / lib / site-packages / PyQt5 / examples

encontrará aproximadamente 100 ejemplos en 30 carpetas que van desde principiante hasta avanzado, cubriendo ventanas básicas, menús, pestañas, diseños, red, OpenGL, etc.