SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Introducción a Qt




    Por Donato Galo
¿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.
¿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.
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!!!
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”.
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.
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();
 }}
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
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”) para
indicar 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.
Quit hola mundo

Hola mundo con un botón en el que el usuario puede
Hola 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();
 }}
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 redimensionamiento
Control 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.
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);
                                                      ...
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();
 }}
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.

Más contenido relacionado

Similar a Introducción a Qt

Aula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftAula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftJulián Santiago Bruno
 
Aprende a programar con KDE y una patata
Aprende a programar con KDE y una patataAprende a programar con KDE y una patata
Aprende a programar con KDE y una patatakdeespana
 
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...jorgelebrato
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
 
Mis primeros pasos usando qt creator para c
Mis primeros pasos usando qt creator para cMis primeros pasos usando qt creator para c
Mis primeros pasos usando qt creator para cestudiante
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-CErick Camacho
 
Manual de android
Manual de androidManual de android
Manual de androidJarboledah
 
Interfaces de usuario con PyGTK
Interfaces de usuario con PyGTKInterfaces de usuario con PyGTK
Interfaces de usuario con PyGTKFco Javier Lucena
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Tonymx
 
Curso Swift
Curso SwiftCurso Swift
Curso SwiftPlatzi
 
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot Arduino
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot ArduinoAplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot Arduino
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot ArduinoMaría Emilia Charnelli
 

Similar a Introducción a Qt (20)

Qtjambi
QtjambiQtjambi
Qtjambi
 
Primeros pasos en pyqt
Primeros pasos en pyqtPrimeros pasos en pyqt
Primeros pasos en pyqt
 
Aula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftAula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de Microsoft
 
Aprende a programar con KDE y una patata
Aprende a programar con KDE y una patataAprende a programar con KDE y una patata
Aprende a programar con KDE y una patata
 
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
Mis primeros pasos usando qt creator para c
Mis primeros pasos usando qt creator para cMis primeros pasos usando qt creator para c
Mis primeros pasos usando qt creator para c
 
Practica5
Practica5Practica5
Practica5
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-C
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Manual de android
Manual de androidManual de android
Manual de android
 
Interfaces de usuario con PyGTK
Interfaces de usuario con PyGTKInterfaces de usuario con PyGTK
Interfaces de usuario con PyGTK
 
Tutorial para-eclipse
Tutorial para-eclipseTutorial para-eclipse
Tutorial para-eclipse
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
6.funciones y recursividad en c++
6.funciones y recursividad en c++6.funciones y recursividad en c++
6.funciones y recursividad en c++
 
Curso Swift
Curso SwiftCurso Swift
Curso Swift
 
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot Arduino
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot ArduinoAplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot Arduino
Aplicación de un Sistema Operativo de Tiempo Real (RTOS) en un robot Arduino
 
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
 

Último

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Introducción a Qt

  • 1. Introducción a Qt Por Donato Galo
  • 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. ¿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. 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. 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. 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. 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. 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. 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”) para indicar 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. Quit hola mundo Hola mundo con un botón en el que el usuario puede Hola 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. 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 redimensionamiento Control 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. 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. 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. 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.