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: