Development with OpenGL and Qt

Gracias por tu visita al blog.  Puedes seguirme en Twitter haciendo click en el siguiente enlace:

Experiencias en Latinoware 2010 – Brasil

Al fin me di tiempo para postar mi experiencia en Brasil en el Latinoware 2010 y contar también mi primer contacto KDEero fuera de Perú.

Antes que nada quisiera agradecer al equipo organizador de Latinoware por el sponsor del viaje/hospedaje/food al evento, la atención brindada y la amabilidad de parte de ellos que fue simplemente sensacional, no hay nada que decir la gente en Brasil es cool, por naturaleza muy amical, acogedora y con gran sentido del humor (Bueno hay pequeñísimas excepciones). Un agradecimiento especial a César Brod y Sandro Andrade por su apoyo incondicinal en todo momento.

Latinoware es una de las conferencias de Software Libre más grandes de Latinoamérica.  El evento se realizó este año del 10 al 12 de noviembre, recibió cerca de 3125 personas de 20 países, hubieron 160 ponencias y 20 minicursos. En definitiva, fue una gran fiesta para compartir, conocer, aprender e intercambiar experiencias acerca del uso del SL en América Latina.

Latinoware, como desde sus inicios en 2004, es celebrado cada año en la ciudad de Foz de Iguazú, específicamente en el Parque Tecnológico de Itaipú. El PTI es un lugar donde se encuentran alojadas varias empresas  que desarrollan grandes proyectos y servicios orientados netamente al área tecnológica. Lo interesante del PTI es que 90% de su infraestructura TI està basada en SL, un ejemplo a seguir.

PTI

Tuve la mala suerte de perderme el primer día del evento porque llegando a Lima tuve un dolor de cabeza insoportable que me llevó a hacerme atender, así que tuve que postergar el vuelo. Y finalmente el día miércoles 10 después de 8 horas de vuelo, Cusco-> Lima-> Sao Paulo-> Foz de Iguazú pude llegar a mi destino sin problemas.

Aquí ya recuperado y listo para viajar.

Ronny Yabar

Los intervalos de tiempo entre los vuelos eran muy cortos, así que no había mucho tiempo para salir de los aeropuertos. Llegando a Sao Paulo, tenía solo 5 horas y luego salía a Foz. Si le quitamos 2 horas de las enormes colas para presentar docs, embarcar, me quedaban 3 , así que me fui a dar un par de vueltas haber si encontraba algo interesante y bueno paseando por el aeropuerto tomé un par de fotos.

Continue reading “Experiencias en Latinoware 2010 – Brasil”

Nokia Qt SDK – Desarrollo de Software para móviles.

Nokia quiere hacer más fácil la vida de los desarrolladores de software para móviles al lanzar Nokia Qt SDK, un completo set de herramientas y APIs que permiten crear, desarrollar, testear y empaquetar aplicaciones móviles de última generación, de alto rendimiento, con características avanzadas y con interfaces de usuario modernas para la nueva generación de smartphones. El Nokia Qt SDK es multiplataforma por lo cual podemos instalarlo en Linux, Windows (Versión Mac en beta) y está enfocado en

Continue reading “Nokia Qt SDK – Desarrollo de Software para móviles.”

KDE talk at LinuxWeek – Lima, Peru

LinuxWeek is a well-known event here in Lima/Peru organized by the PUCP (Pontificia Universidad Católica del Perú). The event consists of one week talks about Free and Open Source Sofware, Linux (Well GNU/Linux) and tendencies/new projects in the FOSS world.

I gave a talk that was divided in three parts: An introduction to KDE Community, the power of Qt and an overview of the KDE Games along with the new interesting Game project called Gluon.

You can see all the program here. There are slides and videos available. It was a pleasure to be there and talk about the coolest community and software project in the world :)

Update:

I uploaded the slides to my Slideshare account. Various points in this talk are still valid today:

 

Cálculo mental con Qt: QTableWidget, QTimer y Layouts

Este es un tutorial sencillo donde intento mostrar el funcionamiento de algunas clases de Qt, haciendo un pequeño programa de Cálculo Mental.

Me acuerdo cuando estaba en primaria y mi gran amigo Omar escribió un programa muy simple de cálculo mental pero muy adictivo. Creo que lo hizo en Visual Basic, bueno ahora Omar es usuario de Linux.

El programa, te mostraba un menú donde elegías una operación a realizar (suma, resta, multiplicación, división), después de tu elección se mostraban 50 operaciones a realizar de acuerdo a la que elegiste y el punto estaba en cuanto tiempo te demorabas en hacer esas operaciones.

Te mostraba las respuestas correctas, incorrectas, el tiempo, promedio de operación por segundo y guardaba estadísticas de los nombres con mejores tiempos.

Aquél que diga: “Esto es para niños”.

Entonces Responde lo siguiente: Continue reading “Cálculo mental con Qt: QTableWidget, QTimer y Layouts”

Manejo de Strings con Qt – QString , QChar, QStringList

Trabajar con cadenas de caracteres (Strings), es algo que se realiza a menudo en la programación informática.

Qt nos proporciona la clase QString que nos va a permitir crear cadenas de tipo Unicode.

Unicode es un estándar internacional que actualmente usan la mayoría de sistemas de escritura y funciona básicamente asignando un código binario a cada caracter.

Lo que permite Unicode es que los usuarios puedan visualizar la información de los programas sin ningún problema, independientemente del idioma y de la plataforma sobre la cual está construido el software.

La clase QString permite manipular la información de estas cadenas tipo Unicode y además convertirlas a otros tipos de datos.

Cuando se crea una cadena en realidad lo que está pasando es que Qt almacena una cadena compuesta por un conjunto de QChars (caracteres) de 16 bits. Veremos la clase QChar más adelante.

Vamos a revisar paso a paso los métodos más importantes de QString.

Debemos incluir la clase por supuesto:

Continue reading “Manejo de Strings con Qt – QString , QChar, QStringList”

QGraphicsView

Una introducción a QGraphicsView, ampliamente usado en aplicaciones Qt.

QGraphicsView es el framework dentro de Qt que permite la creación e interacción de elementos gráficos 2D y que usa el método de programación modelo/vista.

De manera simple, varias vistas pueden observar una misma escena y una escena puede contener elementos (items) de diferentes formas geométricas.

El framework está compuesto de 3 elementos:

QGraphicsScene (La Escena):

        Representa una escena con items. Es la clase que se encarga de almacenar los widgets, así como manejar propagar eventos a cada item.

Además esta clase se encarga de manejar los estados de un item. Un objeto QGraphicsScene es muy flexible como para incluir cualquier número de objetos QGraphicsItem.

QGraphicsView (La Vista):

        La clase que se encarga de proporcionar los widgets que visualizan el contenido de una escena.

La vista recibe eventos de entrada del teclado/mouse, y los traslada a la escena.

QGraphicsItem (El Item):

        Representa un grupo de items. Es una clase para el manejo de items gráficos en la escena y proporciona varios items estándar para formas típicas como rectángulos, elipses y textos. También soporta eventos del mouse como mover, soltar, presionar, doble click, sobre y eventos del teclado.

QGraphicsItem, además soporta dos características importantes en elementos gráficos: Drag and Drop (Soltar y arrastrar) y collision detection.

Cada objeto QGraphicsItem en la escena soporta rotación, zooming, traslado y el poder cortarlo.

Hagamos un ejemplo sencillo de como crear un escena, un item y como visualizarlos:


// Incluimos las clases de la escena, vista y el tipo de item
#include <QtGui/QApplication>
#include <QGraphicsRectItem>
#include <QGraphicsScene>
#include <QGraphicsView>

int main( int argc, char **argv )
{
   QApplication app(argc, argv);

   // Iniciamos la escena y definimos su tamaño
   QGraphicsScene scene;
   scene.setSceneRect(-100, -100, 200, 200);
   // Color y estilo
   scene.setForegroundBrush(QBrush(Qt::lightGray, Qt::CrossPattern));

   // Creamos y agregamos nuestro item (rectángulo) a la escena
   QGraphicsRectItem *item = new QGraphicsRectItem( 0, &scene );
   // izquierda, arriba, ancho y alto
   item->setRect(-60, -30, 140, 60);
   // Línea: Ancho y estilo
   item->setPen(QPen(Qt::blue,4,Qt::SolidLine));
   // Relleno: Color y estilo.
   item->setBrush(QBrush(Qt::green,Qt::SolidPattern));

   // Creamos una vista para visualizar la escena
   QGraphicsView view( &scene );
   view.setRenderHints( QPainter::Antialiasing );
   view.show();

   return app.exec();
}

Y el resultado:

QGraphicsRectItem

Gracias por tu visita al blog.  Puedes seguirme en Twitter haciendo click en el siguiente enlace: