Escolar Documentos
Profissional Documentos
Cultura Documentos
Los autores
Fecha
Índice general
I Basico 3
1. Primeros pasos 4
1.1. Hola Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Haciendo conexiones . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Sincronizando Widgets . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Documentacion en linea . . . . . . . . . . . . . . . . . . . . . 10
2. Cuadros de diálogos 13
2.1. Subclase QDialog . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2. Señales y slots en profundidad . . . . . . . . . . . . . . . . . . 18
2.3. Diseño rápido de formularios . . . . . . . . . . . . . . . . . . . 20
2.4. Cambiando nuestros formularios . . . . . . . . . . . . . . . . . 20
2.5. Formularios dinámico . . . . . . . . . . . . . . . . . . . . . . . 20
2.6. Las clases Widget y cuadros de diálogo. . . . . . . . . . . . . . 20
3. Formulario principal 21
3.1. Clasicación QMainWindow . . . . . . . . . . . . . . . . . . . 21
3.2. Creación de menús y barras de herramientas . . . . . . . . . . 21
3.3. Conguración de la barra de estado . . . . . . . . . . . . . . . 21
3.4. Aplicación del menú Archivo . . . . . . . . . . . . . . . . . . . 21
3.5. Uso de cuadros de diálogo . . . . . . . . . . . . . . . . . . . . 21
3.6. Conguración de almacenamiento . . . . . . . . . . . . . . . . 21
3.7. Múltiples documentos . . . . . . . . . . . . . . . . . . . . . . . 21
3.8. Pantallas de inicio . . . . . . . . . . . . . . . . . . . . . . . . . 21
4. Implementando aplicaciones 22
4.1. El Widget central . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2. Subclasicación QTableWidget . . . . . . . . . . . . . . . . . 22
4.3. Cargar y guardar . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4. Aplicación del menú Editar . . . . . . . . . . . . . . . . . . . 22
4.5. Implementar los otros menús . . . . . . . . . . . . . . . . . . . 22
1
ÍNDICE GENERAL ÍNDICE GENERAL
II Intermedio 24
6. Los layout 25
6.1. Diseño de Widgets en un formulario . . . . . . . . . . . . . . . 25
6.2. Mas sobre layout . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3. Los splitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4. Áreas de desplazamiento . . . . . . . . . . . . . . . . . . . . . 25
6.5. Dock y barras de herramientas . . . . . . . . . . . . . . . . . . 25
6.6. Interfaz de múltiples documentos . . . . . . . . . . . . . . . . 25
2
Parte I
Basico
3
Capítulo 1
Primeros pasos
1.1. Hola Qt
Vamos a empezar con un programa muy simple. En primer lugar, lo es-
tudiaremos línea por línea, como compilar y ejecutar las aplicaciones de Qt,
se sale del ámbito de este libro.
4
1.1. HOLA QT CAPÍTULO 1. PRIMEROS PASOS
La línea 7 hace visible el label, los objetos siempre se crean ocultos, por lo
que pueden personalizarse antes de mostrarlos, evitando así el parpadeo.
Figura 1.1:
por
5
1.2. HACIENDO CONEXIONES CAPÍTULO 1. PRIMEROS PASOS
Figura 1.2:
Los widgets emiten señales para indicar que una acción del usuario o un
cambio de estado ha ocurrido.Por ejemplo, QPushButton emite una señal
clicked() cuando el usuario hace clic en el ratón. Una señal se puede
conectar a una función (llamada slot), de modo, que cuando la señal es
emitida, se ejecuta automáticamente la función. En nuestro ejemplo,
conectamos la señal clicked() del QPushButton a la función quit() , que
hace terminar nuestra aplicación.
6
1.3. SINCRONIZANDO WIDGETS CAPÍTULO 1. PRIMEROS PASOS
Figura 1.3:
Figura 1.4:
7
1.3. SINCRONIZANDO WIDGETS CAPÍTULO 1. PRIMEROS PASOS
Podemos asumir con seguridad que el usuario no tendra más de 130 años de
edad.
QObject::connect(spinBox, SIGNAL(valueChanged(int)),
slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)),
spinBox, SLOT(setValue(int)));
8
1.3. SINCRONIZANDO WIDGETS CAPÍTULO 1. PRIMEROS PASOS
Pero en este punto, setValue no emite ninguna señal, ya que el valor del
cuadro ya está a 35.
Figura 1.5:
9
1.4. DOCUMENTACION EN LINEA CAPÍTULO 1. PRIMEROS PASOS
Figura 1.6:
Este libro hace uso de muchas clases y funciones, pero no cubre todos ellos,
ni proporciona todos los detalles. Para obtener mas informacion de Qt,
debe familiarizarse con la documentación de referencia lo antes posible.
10
1.4. DOCUMENTACION EN LINEA CAPÍTULO 1. PRIMEROS PASOS
Figura 1.7:
Tenga en cuenta las funciones heredadas de las clases bases, por ejemplo,
QPushButton no tiene una funcion show () , sino que es heredada de
QWidget. La gura 1.8 muestra las clases que hemos visto hasta ahora y
como se relacionan.
Figura 1.8:
11
1.4. DOCUMENTACION EN LINEA CAPÍTULO 1. PRIMEROS PASOS
Pretendemos que este sitio sea el punto central de encuentro para los
desarrolladores de Qt de habla hispana, por ello publicaremos y ofreceremos
distintos tipos de información y herramientas con el n de que puedas
aprender, ayudar y mantenerte informado, con sólo visitar este sitio y sin
tener que estar buscando en toda la red. Para ello, Zona Qt contará con las
siguientes secciones:
12
Capítulo 2
Cuadros de diálogos
13
2.1. SUBCLASE QDIALOG CAPÍTULO 2. CUADROS DE DIÁLOGOS
Figura 2.1:
nddialog.h.
La lnea 3 incluye la clase base para los dialogos Qt: QDialog (que es
subclase de QWidget).
14
2.1. SUBCLASE QDIALOG CAPÍTULO 2. CUADROS DE DIÁLOGOS
Esto hara que el makele generado por qmake incluya reglas especiales
para ejecutar moc (el compilador de meta-objetos) Para que moc funcione
correctamente, es necesario que pongamos la denicion de la clase en un chero
.h separado del chero de implementacion. moc genera codigo C++ que incluye
este chero .h.
La denicion del constructor de FindDialog es tpico en clases de widgets
Qt: parent especica el widget padre. parent es por defecto un puntero nulo,
que signica que el dialogo no tiene ningun padre
013 signals:
014 void findNext(const QString &str, Qt::CaseSensitivity cs);
015 void findPrevious(const QString &str, Qt::CaseSensitivity cs);
15
2.1. SUBCLASE QDIALOG CAPÍTULO 2. CUADROS DE DIÁLOGOS
Finddialog.cpp
En la lnea 12, el boton Find se hace el boton por defecto (es aquel que se
ejecuta al pulsar la tecla Enter).
16
2.1. SUBCLASE QDIALOG CAPÍTULO 2. CUADROS DE DIÁLOGOS
17
2.2. SEÑALES Y SLOTS EN CAPÍTULO
PROFUNDIDAD
2. CUADROS DE DIÁLOGOS
Figura 2.2:
Recordemos como funcionan. Los slots son casi idénticos a las funciones
miembro de C + +. Pueden ser virtual, se puede sobrecargar, pueden ser
públicas, protegidas o privadas, y pueden ser llamadas como otra funcion de
C + +, y sus parámetros pueden ser de cualquier tipo valido.
18
2.2. SEÑALES Y SLOTS EN CAPÍTULO
PROFUNDIDAD
2. CUADROS DE DIÁLOGOS
Para conectar una señnal con un slot u otra señal, ambos deben tener los
mismos tipos de parametros y en el mismo orden:
Como excepcion, si una señal tiene mas parametros que el slot, se ignoran
los parametros adicionales:
19
2.3. DISEÑO RÁPIDO DE FORMULARIOS
CAPÍTULO 2. CUADROS DE DIÁLOGOS
20
Capítulo 3
Formulario principal
21
Capítulo 4
Implementando aplicaciones
22
Capítulo 5
Creación de widgets
personalizados
23
Parte II
Intermedio
24
Capítulo 6
Los layout
25