PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para...
Transcript of PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para...
![Page 1: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/1.jpg)
PyQt ... ¿está bueno?
![Page 2: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/2.jpg)
Introducción
• ¿Qué es Qt?• ¿Quién usa Qt?• ¿Qué es PyQt?• ¿Quién usa PyQt?
![Page 3: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/3.jpg)
Introducción
• ¿Qué es Qt?• Toolkit para interfaz gráfica• Maduro (más de 15 años de vida)• Origen comercial (actualmente
propiedad de Nokia)• Open Source• Multiplataforma• C++
![Page 4: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/4.jpg)
Introducción
• ¿Quién usa Qt?• Google Earth• Adobe Photoshop Elements /
Photoshop Album• KDE• VLC• Skype• Feko• Dispositivos con Qt Embedded:
http://is.gd/2TTgk
![Page 5: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/5.jpg)
Introducción
• ¿Qué es PyQt?• Qt desde Python• Open Source• Maduro (10 años de vida)• Soporte comercial (Riverbank
Computing)
![Page 6: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/6.jpg)
Introducción
• ¿Quién usa PyQt?• Eric• Camelot• Treeline• Calibre• Yo• Muchos más!
![Page 7: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/7.jpg)
¿Y como se usa?
Empezás con Designer:
![Page 8: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/8.jpg)
Designer
• Genera XML• XML => Python
Y si eso no te gusta...• XML cargado desde Python• Separa código de diseño• Soporta
Signals/Slots/Actions/Resources/i18n
![Page 9: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/9.jpg)
En serio, Usá Designer
Si no lo usás...
![Page 10: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/10.jpg)
En serio, Usá Designer
Si no lo usás...
No estamos conectando!
![Page 11: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/11.jpg)
Poco Código == Bueno
1 # Este es el módulo generado por designer 2 from windowUi import Ui_MainWindow 3 4 class Main(QtGui.QMainWindow): 5 def __init__(self): 6 QtGui.QMainWindow.__init__(self) 7 8 # This is always the same 9 self.ui=Ui_MainWindow()10 self.ui.setupUi(self)11 12 def main():13 # Esto es lo mismo en cada aplicación que escribas.14 app = QtGui.QApplication(sys.argv)15 window=Main()16 window.show()17 sys.exit(app.exec_())18 19 if __name__ == "__main__":20 main()
![Page 12: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/12.jpg)
Que viene con PyQt
Es como Python: viene con las pilas puestas!• Webkit (objeto web browser)• OpenGL (para hacer 3D)• Phonon (Sonido / Video)• Red (cliente y servidor)• Browser de ayuda (para usar desde tu
aplicación)• SVG• Y cosas que capaz no necesitás
• Threading• SQL• Javascript
![Page 13: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/13.jpg)
Multiplataforma
• Windows• Linux• Mac• S60• Embedded• Se pone mucho cuidado en hacer que se
comporte como una aplicación nativa encada plataforma soportada.
![Page 14: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/14.jpg)
El juego de las diferencias
Es exactamente el mismo código. Porqué sondistintos?
![Page 15: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/15.jpg)
Auténtica Portabilidad
Mientras uses solo las APIs de PyQt, y labiblioteca standard de python, tuaplicación funciona en todas estas
plataformas sin modificaciones.
![Page 16: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/16.jpg)
Licencia
• Qt es multi-licencia
![Page 17: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/17.jpg)
Licencia
• Qt es multi-licencia• Pero la que importa es la LGPL
![Page 18: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/18.jpg)
Licencia
• Qt es multi-licencia• Pero la que importa es la LGPL• PyQt es GPL
![Page 19: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/19.jpg)
Licencia
• Qt es multi-licencia• Pero la que importa es la LGPL• PyQt es GPL• Sí, eso es un problema para algunos
![Page 20: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/20.jpg)
Licencia
• Qt es multi-licencia• Pero la que importa es la LGPL• PyQt es GPL• Sí, eso es un problema para algunos• Usen PySide entonces!
![Page 21: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/21.jpg)
Deployment
• Como todos• pyinstaller• py2exe• upx• etc, etc.
• Mide alrededor de 12MB máximo(incluye runtime python, y TODO PyQt)
• Se puede achicar a unos 5MB
![Page 22: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/22.jpg)
¿Alguna pregunta?
![Page 23: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/23.jpg)
Eric: un muy buen IDE
Volver a slide 6
![Page 24: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/24.jpg)
Camelot: Django, pero Desktop!
Volver a slide 6
![Page 25: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/25.jpg)
TreeLine: no es fácil de describir
Volver a slide 6
![Page 26: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/26.jpg)
Calibre: increíble eBook manager
Volver a slide 6
![Page 27: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/27.jpg)
Yo! en un montón de medias aplicaciones!
Esta es uRSSus: http://urssus.googlecode.com
Volver a slide 6
![Page 28: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/28.jpg)
Como ser...
Volver a slide 6
![Page 29: PyQt ¿está bueno?ralsina.me/static/pyqt.pdf · Introducción • ¿Qué es Qt? • Toolkit para interfaz gráfica • Maduro (más de 15 años de vida) • Origen comercial (actualmente](https://reader030.fdocuments.es/reader030/viewer/2022040404/5e94e9d0a3a73068d729e405/html5/thumbnails/29.jpg)
Feko: Modelado físico aeronáutico
¡Lo puse porque la imagen es linda!Volver a slide 4