Juan Luis Baptiste
jbaptiste@merlinux.org



              Introducción a QtJambi


                         Campus Party ...
Tabla de Contenidos

 Que es QtJambi?

 Acerca de Qt...

 Características generales de Qt

 Arquitectura de Qt

 Caracterí...
Tabla de Contenidos

 Comparación con otros frameworks Java

 Herramientas de desarrollo de Qt

 Descripción del taller a ...
Que es QtJambi?

 Un framework de desarrollo en Java con base las 
 librerías Qt C++ multiplataforma.

 Incluye un API muy...
Que es QtJambi?

 Se pueden mezclar componentes hechos en Java y C+
 + en un solo proyecto, con los siguienes beneficios:
...
Qt




     Hablemos de Qt primero...
                                 6
Acerca de Qt...

  Desarrollada por la empresa Trolltech 
  http://www.trolltech.com

  Qt es la base de KDE y miles de ap...
Características de Qt

 API en C++ con una librería de clases muy 
 completa.

 Multiplataforma:
   Linux/X11 (UNIX en gen...
Características de Qt

 Acerca de Qt (continuación)
   Multiplataforma
       Encapsulamiento de las aplicaciones del s.o....
Características de Qt

 Conjunto de herramientas que simplifican el 
 desarrollo:
   Diseñador de interfaces gráficas: Qt ...
Arquitectura de Qt




                     11
Características de Qt 4.4

  Integración con WebKit, el motor HTML Open 
  Source.
    Desarrollado por Apple con base KHT...
Caracterìsticas de Qt 4.4

  Desarrollo de aplicaciones multimedia 
  multiplataforma:
    Incluye soporte de Phonon, el f...
Caracterìsticas de Qt 4.4

  Poderoso canvas 2D:




                            14
Características de Qt 4.4

  Integración muy sólida con OpenGL:




                                       15
Características de Qt 4.4

  Soporte de Xquery para manejo de XML.

  Desarrollo de aplicaciones concurrentes para 
  arqu...
QtJambi




    Ahora si, enfoquémonos en QtJambi
                                        17
Características de QtJambi

 El API de QtJambi provee toda la funcionalidad de 
 Qt C++.

 Código mucho más simple que otr...
Características de QtJambi

 Uso de Qt Designer para el diseño de las interfaces 
 gráficas (nada de esos complicados layo...
Características de QtJambi

 Se puede mezclar con AWT/Swing.

 Utiliza Apache ant para la compilación de los 
 proyectos.
...
Características de QtJambi

 Generador de QtJambi:
   Es la fundación de QtJambi.

   Herramienta que permite mapear clase...
Un ejemplo: Hola mundo !!

package com.trolltech.examples.tutorial;
import com.trolltech.qt.gui.*;
public class HelloWorld...
Comunicación entre objetos


  Comunicación entre objetos, “Señales y slots” 
    Objetos emiten señales cuando un evento ...
Comunicación entre objetos




                             24
Otro Ejemplo: Señales y slots

public class Quit

{

    public static void main(String args[])

    {

        QApplicati...
Comparación entre Swing y QtJambi

        Manejo de eventos en Swing:
 button.addActionListener(new ActionListener() {

 ...
Comparación 2 entre Swing y 
QtJambi

               Pintar un rectángulo en                                      Pintar u...
Comparación 2 entre Swing y 
QtJambi

 24 lineas de código   14 lineas de código.

                       41,6% menos códi...
Qt Designer

 Herramienta de desarrollo visual tipo WYSIWYG.

 Drag and drop de los widgets deseados al dialogo 
 que se e...
Qt Designer

 Las formas se pueden previsualizar sin necesidad 
 de compilarlas.

 Los widgets se pueden extender con prop...
Qt Designer




              31
Qt Designer

 Para convertir los archivos .ui en código Java se usa 
 la herramienta juic.

 Pero no es necesario correrla...
Plugin para Eclipse

 Plugin que integra QtJambi en Eclipse  versión 3.2.x 
 en adelante.

 Herramientas como Qt Designer ...
Plugin para Eclipse




                      34
El Taller




            Ahora lo bacano, el taller !!
                                            35
El Taller

    El taller consiste de tres partes:
●



    1)Instalar de Eclipse y QtJambi.

    2)Instalar el plugin para...
Instalar Eclipse y QtJambi

1)Descomprimir el archivo:

  eclipse­java­europa­winter­linux­gtk.tar.gz

2)Descomprimir el a...
Instalar el plugin

1)Descomplimir el archivo dentro de la carpeta eclipse:

   qtjambi­eclipse­integration­linux32­4.4.0_...
Instalar el plugin




                     39
El taller

  Como crear un nuevo proyecto:
   1)Seleccionar File­>New­>Project

   2)Abrir Qt Jambi y seleccionar “Qt Jamb...
Desarrollo de la aplicación

  Vamos a desarrollar reproductor de música que:
    Use phonon para reproducir los archivos ...
Bibliografía

  http://doc.trolltech.com
  http://trolltech.com/products/qt/features/language­support/java

  http://doc.t...
QtJambi




          Gracias !!!




                        43
Upcoming SlideShare
Loading in...5
×

Qtjambi

4,227

Published on

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,227
On Slideshare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
69
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Qtjambi

  1. 1. Juan Luis Baptiste jbaptiste@merlinux.org Introducción a QtJambi Campus Party Colombia 2008
  2. 2. Tabla de Contenidos Que es QtJambi? Acerca de Qt... Características generales de Qt Arquitectura de Qt Características de Qt 4.4 Características de QtJambi Ejemplos 2
  3. 3. Tabla de Contenidos Comparación con otros frameworks Java Herramientas de desarrollo de Qt Descripción del taller a desarrollar 3
  4. 4. Que es QtJambi? Un framework de desarrollo en Java con base las  librerías Qt C++ multiplataforma. Incluye un API muy intuitivo en Java que provee las  mismas funcionalidades del API de C++. Librerías muy completas para desarrollo de  aplicaciones cliente o servidor. 4
  5. 5. Que es QtJambi? Se pueden mezclar componentes hechos en Java y C+ + en un solo proyecto, con los siguienes beneficios: Aumento de la eficiencia de desarollo. Libertad y flexibilidad. Aseguramiento de un framework ya probado. 5
  6. 6. Qt Hablemos de Qt primero... 6
  7. 7. Acerca de Qt... Desarrollada por la empresa Trolltech  http://www.trolltech.com Qt es la base de KDE y miles de aplicaciones libres. Miles de desarrolladores en todo el mundo. Qt corre en diferentes plataformas: x86 PowerPC PDA's 7
  8. 8. Características de Qt API en C++ con una librería de clases muy  completa. Multiplataforma: Linux/X11 (UNIX en general) MS Windows Apple Mac OS X Linux embebido Windows CE 8
  9. 9. Características de Qt Acerca de Qt (continuación) Multiplataforma Encapsulamiento de las aplicaciones del s.o. API idéntico en todas las plataformas “Write once, compile everywhere”  Ejecutables natívos en cada plataforma Aplicación Aplicación Aplicación Qt/X11 lib Qt/Windows lib Qt/Mac lib Unix o Linux MS Windows MacOS 9
  10. 10. Características de Qt Conjunto de herramientas que simplifican el  desarrollo: Diseñador de interfaces gráficas: Qt Designer. Herramienta de internacionalización de aplicaciones:  Qt Linguist. Sistema de compilación multiplataforma: qmake. Herramienta para generación de documentación: Qt  Assistant. 10 Plugin para Eclipse.
  11. 11. Arquitectura de Qt 11
  12. 12. Características de Qt 4.4 Integración con WebKit, el motor HTML Open  Source. Desarrollado por Apple con base KHTML del proyecto  KDE. Ahora mantenido por Apple, KDE y Nokia/Trolltech. Permite mezclar contenido y funcionalidades nativas  y web para crear interfaces innovativas 12
  13. 13. Caracterìsticas de Qt 4.4 Desarrollo de aplicaciones multimedia  multiplataforma: Incluye soporte de Phonon, el framework multimedia  de KDE 4. Abstrae formatos y frameworks multimedia de las  aplicaciones. Soporte de Xquery para manejo de XML. Desarrollo de aplicaciones concurrentes para  13 arquitecturas multicore con QtConcurrent.
  14. 14. Caracterìsticas de Qt 4.4 Poderoso canvas 2D: 14
  15. 15. Características de Qt 4.4 Integración muy sólida con OpenGL: 15
  16. 16. Características de Qt 4.4 Soporte de Xquery para manejo de XML. Desarrollo de aplicaciones concurrentes para  arquitecturas multicore con QtConcurrent. Presentación de las interfaces rápida y fácilmente  con CSS. 16
  17. 17. QtJambi Ahora si, enfoquémonos en QtJambi 17
  18. 18. Características de QtJambi El API de QtJambi provee toda la funcionalidad de  Qt C++. Código mucho más simple que otros frameworks  como SWT/Swing Requiere de un JRE y JNI para correr. Manejo de memoria automática (es Java, duh !!) 18
  19. 19. Características de QtJambi Uso de Qt Designer para el diseño de las interfaces  gráficas (nada de esos complicados layouts de  Swing). Manejo de layouts muy simple. Integración con Eclipse. Utiliza JDBC para la conexión a bases de datos. 19
  20. 20. Características de QtJambi Se puede mezclar con AWT/Swing. Utiliza Apache ant para la compilación de los  proyectos. 20
  21. 21. Características de QtJambi Generador de QtJambi: Es la fundación de QtJambi. Herramienta que permite mapear clases C++ a Java. El código generado llama interamente a la clase  correspondiente C++. 21
  22. 22. Un ejemplo: Hola mundo !! package com.trolltech.examples.tutorial; import com.trolltech.qt.gui.*; public class HelloWorld {     public static void main(String args[])     {         QApplication.initialize(args);         QPushButton hello = new QpushButton(quot;Hola Mundo!quot;);         hello.resize(120, 40);         hello.setWindowTitle(quot;Hola Mundoquot;);         hello.show();         QApplication.exec();     } } 22
  23. 23. Comunicación entre objetos Comunicación entre objetos, “Señales y slots”  Objetos emiten señales cuando un evento ocurre Señales se “conectan” a los slots de otros objetos Los slots son métodos públicos comunes y corrientes Mecanísmo completamente OO 23
  24. 24. Comunicación entre objetos 24
  25. 25. Otro Ejemplo: Señales y slots public class Quit {     public static void main(String args[])     {         QApplication.initialize(args);         QPushButton quit = new QPushButton(quot;Quitquot;);         quit.resize(80, 40);         quit.setFont(new QFont(quot;Timesquot;, 18, QFont.Weight.Bold.value()));         quit.clicked.connect(QApplication.instance(), quot;quit()quot;);        quit.setWindowTitle(quot;Calling It Quitsquot;);         quit.show();         QApplication.exec(); 25     }
  26. 26. Comparación entre Swing y QtJambi Manejo de eventos en Swing:  button.addActionListener(new ActionListener() {     public void actionPerformed(ActionEvent e)  {       showDialog();  // code to execute when button is pressed     } }); Manejo de eventos en QtJambi: button.clicked.connect(this, quot;showDialog()quot;); 26
  27. 27. Comparación 2 entre Swing y  QtJambi Pintar un rectángulo en  Pintar un rectángulo en  Swing: QtJambi:  void doPrinting() {  void doPrinting () {     PrinterJob printJob = PrinterJob.getPrinterJob();     QPrinter printer = new QPrinter();     printJob.setPrintable(this);     QPainter painter = new QPainter();     if (printJob.printDialog())   {     QPrintDialog printDialog = new QPrintDialog(printer, this);       try  {     if (printDialog.exec())  {         printJob.print();       painter.begin(printer);       }       Graphics2D graphics2D = (Graphics2D) graphics;       catch (Exception ex)   {       Rectangle2D.Double rectangle = new Rectangle2D.Double();         ex.printStackTrace();       rectangle.setRect(pageFormat.getImageableX() + 1,       }                         pageFormat.getImageableY() + 1, 144, 144);     }       graphics2D.draw (rectangle); }       painter.end(); public int print(Graphics graphics, PageFormat pageFormat, int     } pageIndex)   throws PrinterException{ }     if (pageIndex != 0)   {       return Printable.NO_SUCH_PAGE;     }     Graphics2D graphics2D = (Graphics2D)graphics;     Rectangle2D.Double rectangle = new Rectangle2D.Double();     rectangle.setRect(pageFormat.getImageableX() + 1,                       pageFormat.getImageableY() + 1, 144, 144);     graphics2D.draw (rectangle); 27     return Printable.PAGE_EXISTS; }
  28. 28. Comparación 2 entre Swing y  QtJambi 24 lineas de código 14 lineas de código. 41,6% menos código. 28
  29. 29. Qt Designer Herramienta de desarrollo visual tipo WYSIWYG. Drag and drop de los widgets deseados al dialogo  que se esté diseñando. Conexión de señales y slots con drag and drop. Las formas se pueden previsualizar sin necesidad  de compilarlas. 29
  30. 30. Qt Designer Las formas se pueden previsualizar sin necesidad  de compilarlas. Los widgets se pueden extender con propios. Las interfaces generadas no son dependientes del  lenguaje (C++ o Java), son archivos XML (de  extensión .jui) que describen la interfaz. 30
  31. 31. Qt Designer 31
  32. 32. Qt Designer Para convertir los archivos .ui en código Java se usa  la herramienta juic. Pero no es necesario correrla manualmente, el  plugin de Eclipse lo hace por nosotros. 32
  33. 33. Plugin para Eclipse Plugin que integra QtJambi en Eclipse  versión 3.2.x  en adelante. Herramientas como Qt Designer Qt Script Assistan y  scripts de Ant también son integrados. 33
  34. 34. Plugin para Eclipse 34
  35. 35. El Taller Ahora lo bacano, el taller !! 35
  36. 36. El Taller El taller consiste de tres partes: ● 1)Instalar de Eclipse y QtJambi. 2)Instalar el plugin para Eclipse 3)Desarrollo de una mini aplicación. 36
  37. 37. Instalar Eclipse y QtJambi 1)Descomprimir el archivo: eclipse­java­europa­winter­linux­gtk.tar.gz 2)Descomprimir el archivo: qtjambi­linux32­gpl­4.4.0_01.tar.gz 37
  38. 38. Instalar el plugin 1)Descomplimir el archivo dentro de la carpeta eclipse: qtjambi­eclipse­integration­linux32­4.4.0_01.tar.gz. 2)Ejecutar Eclipse con el parámetro ­clean: ./eclipse ­clean 3)Ir al Window­>Preferences­>QtJambi Preference  Page 4)Colocar la ruta a QtJambi. 5)Reiniciar Eclipse. 38
  39. 39. Instalar el plugin 39
  40. 40. El taller Como crear un nuevo proyecto: 1)Seleccionar File­>New­>Project 2)Abrir Qt Jambi y seleccionar “Qt Jambi Project (Using  Designer Form)“ 3)Colocarle un nombre al proyecto. 4)Presionar Next 2 veces. 5)Ingresar un nombre de paquete y un nombre para la  clase principal. 40 6)Presionar Finish.
  41. 41. Desarrollo de la aplicación Vamos a desarrollar reproductor de música que: Use phonon para reproducir los archivos de audio. Use WebKit para abrir la página del artista en  Wikipedia. Tenga una barra de menú con entradas como  Archivo, Reproducción, Ayuda, etc.. 41
  42. 42. Bibliografía http://doc.trolltech.com http://trolltech.com/products/qt/features/language­support/java http://doc.trolltech.com/qtjambi­4.4/html/com/trolltech/qt/qtjambi­index.html 42
  43. 43. QtJambi Gracias !!! 43
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×