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: