e Un framework de desarrollo en Java con base las
librerias Qt C++ multiplataforma.
o Incluye un API muy intuitivo en Java que provee las
mismas funcionalidades del API de C++.
e Librerías muy completas para desarrollo de
aplicaciones cliente o servidor.
~
Que es QtJambi?
e 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.
2 Aseguramiento de un framework ya probado.
Hablemos de Qt primero...
e Desarrollada por la empresa Trolltech
http://www.trolltech.com
o Qt es la base de KDE y miles de aplicaciones libres.
e Miles de desarrolladores en todo el mundo.
e API en C++ con una libreria de clases muy
completa.
o Multiplataforma:
> Linux/X11 (UNIX en general)
> MS Windows
> Apple Mac OS X
> Linux embebido
>» Windows CE
~ $25 2 ie
Caracteristicas de Qt
e Acerca de Qt (continuación)
> Multiplataforma
> Encapsulamiento de las aplicaciones del s.o.
2 API idéntico en todas las plataformas
> “Write once, compile everywhere”
» Ejecutables nativos en cada plataforma
Aplicación Aplicación Aplicación
Unix o Linux MS Windows
e 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.
de
Arquitectura de Qt
Qt Application Development Tools
C++ Application Java” Application
Qt Designer:
cd GUI Forms Builder
4
e 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++.
r- QtJambi Generator
Java AP| A Java Native Interface > C++ API
e ET
Un ejemplo: Hola mundo !!
package com.trolltech.examples.tutorial;
import com.trolltech.qt.gui.*; Hello World!
public class HelloWorld
{
public static void main(String args[])
{
QApplication.initialize(args);
QPushButton hello = new QpushButton("Hola Mundo!");
hello.resize(120, 40);
hello.setWindowTitle("Hola Mundo");
hello.show();
QApplication.exec();
à pa A
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
> Mecanismo completamente OO
# we! Sa
Comunicación entre objetos
connect Object, signal1, Object2, slot! )
Object | connectí Object, signal, Object2, slot2)
signal
signal2 Object
signal
Objects
signalt connect Object1, signal2, Object4, slot )
Object4
connect( Object3, signal1, Object4, slot3)
y Pas =
public class Quit
{
public static void main(String args[])
{
QApplication.initialize(args);
QPushButton quit = new QPushButton("Quit");
quit.resize(80, 40);
quit.setFont(new QFont("Times", 18, QFont.Weight.Bold.value()));
e Manejo de eventos en Swing:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showDialog(); // code to execute when button is pressed
}
»;
e Manejo de eventos en QtJambi:
button.clicked.connect(this, "showDialog()");
¿“Comparación 2 en
, QtJambi
Ba
t
e Pintar un rectängulo en
Swing:
ee.
E
:
'
RE See
ERRORS, DO
Sen.
CE à
re Swing y
e Pintar un rectángulo en
QtJambi:
veld doPrning 0
Printer printer = now Printer:
Painter pater = now OPanter)
OPrtDilog palo = now QPAntDiogjrne, th}
1 (péDalog exec) |
aint beginnen)
(Graphics graphks2D = (Graphies2D) graphs
‘Rectangle20 Double rectang = new Rectangle2D. Double)
rectangle seRetipageFormatgetimageablex) +1,
pagoFermat getimagoabley) +1, 144,144)
aphies20 daw (ctange)
pate endi
D
= E de ¿Pi de .
“Comparación 2 entre Swing y
, QtJambi
e Para convertir los archivos .ui en código Java se usa
la herramienta juic.
e Pero no es necesario correrla manualmente, el
plugin de Eclipse lo hace por nosotros.
e 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.
Ld »
eclipse
[32 a
- Plugin para Eclipse
y
Refector Huigate Search Erojet Run QlDesigner dow Ep
g- S- $-6- %+-0-:Q-:99 ¡(5- ES [ER cios SP save
EE
de “Oo SOP cece object Inspector 3
es Ven Base) | Designer Ester beet Ces
Wet = 3 Norklerhopéss Dido
SR tee widget tattnBox |GOidoguionsox
ales Pr
tebe vont
Containers. Random colors | A
= Eee
LE] cup sox reto 2 — oran
Bi rex ouine BV CHP. 3 Make Toa
ewes Pose ES
BD stor ene
Dreams objectName —_Nextlerapciass
Drs : vds Geier
D dock wiege enabled true
geometry (0, 0, 343, 300]
sizePolicy (Preferred, erred, 0, 0]
nmin (0,0)
mamas (6777215 6777215)
Properties | cons 1? qe C++ Salt tor 23 cine 10,01
Tent et a ln — = basasos we)
salt
= fork Fa (hsshatolg2, 6)
Deus Sn Box
= [aon
E) teat
mousradine fe
parra focwPoley Qatar
ED ostvtim cat enormer, ibefadkcontethm
_ o
Natoal iors
Fork Combo Box . .
tne cde
w” =
EI 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.
In
Jambi
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
1)Descomplimir el archivo dentro de la carpeta eclipse:
qtjambi-eclipse-integration-linux32-4.4.0_01.tar.gz.
2)Ejecutar Eclipse con el parametro -clean:
./eclipse -clean
3)Ir al Window->Preferences->QtJambi Preference
Page