Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Getting Started/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=Programando con Qt=
[[Category:Spanish]]
 
= 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.
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==
== 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.
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.


[[Image:gs1.png]]<br /> Y este es el código:
[[Image:http://doc.qt.nokia.com/4.7/images/gs1.png|http://doc.qt.nokia.com/4.7/images/gs1.png]]<br />Y este es el código:
 
Examinémoslo línea a línea. En las primeras dos líneas, incluimos los encabezados para [http://doc.trolltech.com/4.7/qapplication.html QApplication] ''[doc.trolltech.com]'' y [http://doc.trolltech.com/4.7/qtextedit.html QTextEdit] ''[doc.trolltech.com]'' , 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 <span class="caps">GUI</span>. 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.
<code>#include &lt;QApplication&amp;gt;<br />#include &lt;QTextEdit&amp;gt;


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.
int main(int argv, char *'''args)<br />{<br /> QApplication app(argv, args);<br /> QTextEdit textEdit;<br /> textEdit.show();
<br /> return app.exec&amp;amp;#40;&amp;#41;;<br />}</code><br />Examinémoslo línea a línea. En las primeras dos líneas, incluimos los encabezados para &quot;QApplication&amp;quot;:http://doc.trolltech.com/4.7/qapplication.html y &quot;QTextEdit&amp;quot;:http://doc.trolltech.com/4.7/qtextedit.html , que son las dos clases que necesitamos para el ejemplo. Todas las clases de Qt tienen un archivo de encabezado con su nombre.
<br />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.
<br />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.
<br />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.
<br />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.
<br />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:
<br /><code>qmake -project<br />qmake<br />make<br /></code>
<br />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.
<br />Aprender más<br />&quot;Widgets y Geometría de la ventana&amp;quot;:http://doc.qt.nokia.com/4.7/application-windows.html<br />&quot;Eventos y manejo de eventos&amp;quot;:http://doc.qt.nokia.com/4.7/eventsandfilters.html
<br />h2.Agregando un botón para salir<br />En una aplicación real, normalmente necesitarás más de un widget. Ahora pondremos un &quot;QPushButton&amp;quot;:http://doc.trolltech.com/4.7/qpushbutton.html debajo del editor de texto. El botón cerrará la aplicación cuando sea presionado (por ejemplo, cuando le den click con el mouse).<br />[[Image:http://doc.qt.nokia.com/4.7/images/gs2.png|http://doc.qt.nokia.com/4.7/images/gs2.png]]
<br />Veámos el código.
<br /><code>#include &lt;QtGui&amp;gt;
<br />int main(int argv, char'''*args)<br />{<br /> QApplication app(argv, args);


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.
QTextEdit textEdit;<br /> QPushButton quitButton(&quot;Quit&amp;quot;);


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:
QObject::connect(&amp;quitButton, SIGNAL (clicked()), qApp, SLOT (quit()));


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.
QVBoxLayout layout;<br /> layout.addWidget(&amp;textEdit);<br /> layout.addWidget(&amp;quitButton);


Aprender más<br />[http://doc.qt.nokia.com/4.7/application-windows.html Widgets y Geometría de la ventana] ''[doc.qt.nokia.com]''<br />[http://doc.qt.nokia.com/4.7/eventsandfilters.html Eventos y manejo de eventos] ''[doc.qt.nokia.com]''
QWidget window;<br /> window.setLayout(&amp;layout);


h2.Agregando un botón para salir<br /> En una aplicación real, normalmente necesitarás más de un widget. Ahora pondremos un [http://doc.trolltech.com/4.7/qpushbutton.html QPushButton] ''[doc.trolltech.com]'' debajo del editor de texto. El botón cerrará la aplicación cuando sea presionado (por ejemplo, cuando le den click con el mouse).<br />[[Image:gs2.png]]
window.show();


Veámos el código.
return app.exec&amp;amp;#40;&amp;#41;;<br />}<br /></code>


La línea 1 incluye QtGui, que contiene todas las clases de <span class="caps">GUI</span> de Qt.
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.
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. <span class="caps">SIGNAL</span> y <span class="caps">SLOT</span> 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.
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.
 
La línea 12 crea un [http://doc.trolltech.com/4.7/qvboxlayout.html QVBoxLayout] ''[doc.trolltech.com]'' . Cómo mencionamos, widgets pueden contener otros widgets. Es posible señalar los límites (el lugar y el tamaño) de sus widgets hijos.
 
===Categories:===
 
* [[:Category:Spanish|Spanish]]

Revision as of 10:40, 24 February 2015


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 &lt;QApplication&amp;gt;<br />#include &lt;QTextEdit&amp;gt;

int main(int argv, char *'''args)<br />{<br /> QApplication app(argv, args);<br /> QTextEdit textEdit;<br /> textEdit.show();
<br /> return app.exec&amp;amp;#40;&amp;#41;;<br />}


Examinémoslo línea a línea. En las primeras dos líneas, incluimos los encabezados para "QApplication&quot;:http://doc.trolltech.com/4.7/qapplication.html y "QTextEdit&quot;:http://doc.trolltech.com/4.7/qtextedit.html , 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<br />qmake<br />make<br />


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&quot;:http://doc.qt.nokia.com/4.7/application-windows.html
"Eventos y manejo de eventos&quot;:http://doc.qt.nokia.com/4.7/eventsandfilters.html
h2.Agregando un botón para salir
En una aplicación real, normalmente necesitarás más de un widget. Ahora pondremos un "QPushButton&quot;:http://doc.trolltech.com/4.7/qpushbutton.html 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 &lt;QtGui&amp;gt;
<br />int main(int argv, char'''*args)<br />{<br /> QApplication app(argv, args);

QTextEdit textEdit;<br /> QPushButton quitButton(&quot;Quit&amp;quot;);

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

QVBoxLayout layout;<br /> layout.addWidget(&amp;textEdit);<br /> layout.addWidget(&amp;quitButton);

QWidget window;<br /> window.setLayout(&amp;layout);

window.show();

return app.exec&amp;amp;#40;&amp;#41;;<br />}<br />

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.