Introducción a Qt

1,441 views

Published on

Breve introducción a la programación con Qt.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,441
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción a Qt

  1. 1. Introducción a Qt Por Donato Galo
  2. 2. ¿Qué es Qt? Biblioteca multiplataforma. Biblioteca multiplataforma. Usada para desarrollar aplicaciones con interfaz Usada para desarrollar aplicaciones con interfaz gráfica de usuario. gráfica de usuario. Herramientas para la línea de comandos y consolas Herramientas para la línea de comandos y consolas para servidores. para servidores. Utiliza el lenguaje de programación C++ de forma Utiliza el lenguaje de programación C++ de forma nativa. nativa.
  3. 3. ¿Por qué Qt? Compatibilidad y riqueza de características. Compatibilidad y riqueza de características. Alto rendimiento de C++. Alto rendimiento de C++. Disponibilidad del código fuente. Disponibilidad del código fuente. Documentación y soporte técnico de alta calidad. Documentación y soporte técnico de alta calidad.
  4. 4. Pero... olvidamos lo más importante! Qt es un éxito porque a los programadores Qt es un éxito porque a los programadores les GUSTA!!! les GUSTA!!!
  5. 5. Para empezar Hola mundo Qt!!! Hola mundo Qt!!! Combinación básica entre C++ y las funcionalidades Combinación básica entre C++ y las funcionalidades de Qt para crear aplicaciones con interfaz gráfica. de Qt para crear aplicaciones con interfaz gráfica. Introducción de los conceptos de “Signals” y “Slots”. Introducción de los conceptos de “Signals” y “Slots”. Introducción de la idea de “Layouts”. Introducción de la idea de “Layouts”.
  6. 6. ADVERTENCIA!!! Este manual está realizado para usuarios Este manual está realizado para usuarios Linux. Linux. En este punto se asume que están En este punto se asume que están instaladas y disponibles las librerías instaladas y disponibles las librerías necesarias para compilar C++ y Qt. necesarias para compilar C++ y Qt. NOTA: El tema de la instalación de las librerías se NOTA: El tema de la instalación de las librerías se abordará en otra ocasión. abordará en otra ocasión.
  7. 7. Hola mundo Qt Comencemos con un simple programa Qt. Comencemos con un simple programa Qt. [001-hola-mundo.cpp] [001-hola-mundo.cpp] #include <QApplication> #include <QApplication> #include <QLabel> #include <QLabel> int main(int argc, char *argv[]) { int main(int argc, char *argv[]) { QApplication app(argc, argv); QApplication app(argc, argv); QLabel *label = new QLabel("Hola Mundo Qt!"); QLabel *label = new QLabel("Hola Mundo Qt!"); label­>show(); label­>show(); return app.exec(); return app.exec(); }}
  8. 8. Correr programas Qt Para correr el programa anterior escribimos en una Para correr el programa anterior escribimos en una consola de comandos lo siguiente: consola de comandos lo siguiente: qmake ­project qmake ­project qmake 001­hola­mundo.pro qmake 001­hola­mundo.pro make make ./001­hola­mundo ./001­hola­mundo
  9. 9. Haciendo conexiones “Signals” y “Slots” El mecanismo de “signals” y “slots” es una El mecanismo de “signals” y “slots” es una característica central y distintiva de Qt. característica central y distintiva de Qt. Se utiliza para la comunicación entre objetos. Se utiliza para la comunicación entre objetos. Los widgets de Qt emiten señales (“signals”) para Los widgets de Qt emiten señales (“signals”) paraindicar una acción del usuario o un cambio de estado. indicar una acción del usuario o un cambio de estado. Una señal puede ser conectada a un slot. Una señal puede ser conectada a un slot. Los “slots” son funciones que se ejecutan Los “slots” son funciones que se ejecutan automáticamente cuando una señal es emitida. automáticamente cuando una señal es emitida.
  10. 10. Quit hola mundoHola mundo con un botón en el que el usuario puedeHola mundo con un botón en el que el usuario puede hacer clic para salir. [002-quit-hola-mundo.cpp] hacer clic para salir. [002-quit-hola-mundo.cpp] #include <QApplication> #include <QApplication> #include <QPushButton> #include <QPushButton> int main(int argc, char *argv[]) { int main(int argc, char *argv[]) { QApplication app(argc, argv); QApplication app(argc, argv); QPushButton *button = new QPushButton("Salir"); QPushButton *button = new QPushButton("Salir"); QObject::connect(button, SIGNAL(clicked()), // QObject::connect(button, SIGNAL(clicked()), // &app, SLOT(quit())); &app, SLOT(quit())); button­>show(); button­>show(); return app.exec(); return app.exec(); }}
  11. 11. Disposición de widgets El sistema de “layouts” de Qt proporciona una forma El sistema de “layouts” de Qt proporciona una forma simple y poderosa de organizar automáticamente simple y poderosa de organizar automáticamente widgets, asegurando un buen uso del espacio. widgets, asegurando un buen uso del espacio.Control de la posición, tamaño y redimensionamientoControl de la posición, tamaño y redimensionamiento automático de widgets. automático de widgets. Actualización automática de tamaños de fuentes, Actualización automática de tamaños de fuentes, textos u otros contenidos de los widgets. textos u otros contenidos de los widgets. Ocultar, mostrar y eliminar widgets. Ocultar, mostrar y eliminar widgets.
  12. 12. Hola layouts [1/2] La aplicación pide la edad del usuario, la cual puede La aplicación pide la edad del usuario, la cual puede introducirse mediante la manipulación de un spinbox introducirse mediante la manipulación de un spinbox o un slider. [003-hola-layouts.cpp] o un slider. [003-hola-layouts.cpp] #include <QApplication> #include <QApplication> #include <QHBoxLayout> #include <QHBoxLayout> #include <QSlider> #include <QSlider> #include <QSpinBox> #include <QSpinBox> int main(int argc, char *argv[]) { int main(int argc, char *argv[]) { QApplication app(argc, argv); QApplication app(argc, argv); QWidget *window = new QWidget; QWidget *window = new QWidget; window­>setWindowTitle("Ingresa tu Edad"); window­>setWindowTitle("Ingresa tu Edad"); QSpinBox *spinBox = new QSpinBox; QSpinBox *spinBox = new QSpinBox; QSlider *slider = new QSlider(Qt::Horizontal); QSlider *slider = new QSlider(Qt::Horizontal); ...
  13. 13. Hola layouts [2/2] spinBox­>setRange(0, 130); spinBox­>setRange(0, 130); slider­>setRange(0, 130); slider­>setRange(0, 130); QObject::connect(spinBox, // QObject::connect(spinBox, // SIGNAL(valueChanged(int)), // SIGNAL(valueChanged(int)), // slider, SLOT(setValue(int))); slider, SLOT(setValue(int))); QObject::connect(slider, // QObject::connect(slider, // SIGNAL(valueChanged(int)), // SIGNAL(valueChanged(int)), // spinBox, SLOT(setValue(int))); spinBox, SLOT(setValue(int))); spinBox­>setValue(20); spinBox­>setValue(20); QHBoxLayout *layout = new QHBoxLayout; QHBoxLayout *layout = new QHBoxLayout; layout­>addWidget(spinBox); layout­>addWidget(spinBox); layout­>addWidget(slider); layout­>addWidget(slider); window­>setLayout(layout); window­>setLayout(layout); window­>show(); window­>show(); return app.exec(); return app.exec(); }}
  14. 14. Ejercicio Realizar un programa en el que el usuario ingrese su Realizar un programa en el que el usuario ingrese su nombre y el sistema lo salude. Ver figura. nombre y el sistema lo salude. Ver figura.

×