Getting Started/es

From Qt Wiki
Jump to navigation Jump to search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Programando con Qt

Bienvenido al mundo de Qt —el toolkit para desarrollo multiplataforma. En esta guia para principiantes, enseñaremos los principios básicos de Qt implementando una simple aplicación de toma de notas (Notepad). Después de leer esta guía, podrás ahondar en tus conocimientos de Qt observando los ejemplos y la documentación de las áreas que necesites para la aplicación que desarrolles.

Hola Notepad

En este primer ejemplo, crearemos y mostraremos un cuadro de texto en una ventana. Esto representa el programa más simple posible con una interfaz gráfica dentro de Qt.

http://doc.qt.nokia.com/4.7/images/gs1.png Y este es el código:

#include <QApplication>
#include <QTextEdit>

int main(int argv, char *'''args)
{
 QApplication app(argv, args);
 QTextEdit textEdit;
 textEdit.show();

 return app.exec();
}

Examinémoslo línea a línea. En las primeras dos líneas, incluimos los encabezados para QApplication y QTextEdit , que son las dos clases que necesitamos para el ejemplo. Todas las clases de Qt tienen un archivo de encabezado con su nombre.

La línea 6 crea un objeto QAplication. Este objeto maneja todos los recursos de la aplicación, y es necesaria para correr cualquier programa de Qt que tenga una interfaz GUI. Necesita los argumentos argv y args porque Qt acepta algunos argumentos desde la línea de comandos.

La línea 8 crea un objeto QTextEdit. Un editor de texto es un elemento visual en la interfaz gráfica. En Qt, estos elementos se llaman widgets. Ejemplos de estos widgets pueden ser barras de desplazamiento, etiquetas o botones de opciones. Un widget puede ser un contenedor para otros widgets; un ejemplo de esta clase de widgets es una ventana de aplicación o una ventana de diálogo.

La línea 8 muestra el editor de texto en la pantalla dentro de su propio marco de ventana. Ya que los widgets también funcionan como contenedores (por ejemplo QMainWindow contiene barras de herramientas, menús, una barra de estado y algunos otros widgets), es possible mostrar un widget en su propia ventana. Los widgets no son visibles por defecto; la función show() los hace visibles.

La línea 11 hace que la QApplication entre en su ciclo de eventos (event loop). Cuando una aplicación de Qt está corriendo se generan eventos que son mandados a la aplicación para ser procesados. Algunos ejemplos de estos eventos son: clicks con el ratón o golpes de tecla. Cuando se teclea texto en el widget editor de texto, él recibe los eventos de las teclas y responde dibujando el texto tecleado.

Para correr la aplicación, abre una ventana de comandos, y entra en el directorio que tenga el archivo .cpp del programa. Construye el programa con los siguientes comandos:

qmake -project
qmake
make

Esto crea el ejecutable en el directorio part1 (nota que en Windows, puede ser que tengas que utilizar nmake en lugar de make. Además, el ejecutable se dejará en part1/debug o part1/release). qmake es la herramienta de construcción de Qt, la cual lee un archivo de configuración. qmake generará el archivo de construcción por nosotros cuando se le da la el argumento -project. Dado el archivo de configuración (el cual termina en .pro), qmake produce un archivo make que construirá el programa. Veremos como escribir este archivo .pro luego.

Aprender más Widgets y Geometría de la ventana Eventos y manejo de eventos

h2.Agregando un botón para salir En una aplicación real, normalmente necesitarás más de un widget. Ahora pondremos un QPushButton debajo del editor de texto. El botón cerrará la aplicación cuando sea presionado (por ejemplo, cuando le den click con el mouse). http://doc.qt.nokia.com/4.7/images/gs2.png

Veámos el código.

#include <QtGui>

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

QTextEdit textEdit;
 QPushButton quitButton("Quit");

QObject::connect(&quitButton, SIGNAL (clicked()), qApp, SLOT (quit()));

QVBoxLayout layout;
 layout.addWidget(&textEdit);
 layout.addWidget(&quitButton);

QWidget window;
 window.setLayout(&layout);

window.show();

return app.exec();
}

La línea 1 incluye QtGui, que contiene todas las clases de GUI de Qt.

La línea 10 utiliza el mecanismo de Señales y ranuras (Signals and slots) de Qt para hacer que la aplicación salga cuando el botón de salir es presionado. Una ranura (slot) es una función que puede ser invocada utilizando su nombre (como una cadena literal). Una señal es una función que cuando es llamada invoca las ranuras que se han registrado a ella; a estas acciones se les conoce cómo conectar una ranura y una señal y emitir una señal.

quit() es una ranura de la clase QAplication que termina la aplicación. clicked() es una señal que emite la clase QPushButton cuando es presionado. La función QObject::connect() se encarga de conectar la ranura y la señal. SIGNAL () y SLOT() son macros que toman la firma (signature) de la señal y la ranura que se deben conectar. También hay que pasar apuntadores a los objetos que deben mandar y recibir la señal.