0% encontró este documento útil (0 votos)
340 vistas64 páginas

Introducción a Qt para Desarrolladores

Este documento presenta una introducción a Qt. Explica que Qt es un framework de desarrollo multiplataforma que facilita el desarrollo de aplicaciones y extiende la sintaxis de C++. Luego describe algunos conceptos clave de Qt como signals y slots, el uso de QObjects y el árbol de objetos, y brevemente introduce algunas clases y herramientas de Qt. El documento está estructurado en cuatro secciones principales: introducción, hola mundo, ahora en serio y avanzado.

Cargado por

h529212
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
340 vistas64 páginas

Introducción a Qt para Desarrolladores

Este documento presenta una introducción a Qt. Explica que Qt es un framework de desarrollo multiplataforma que facilita el desarrollo de aplicaciones y extiende la sintaxis de C++. Luego describe algunos conceptos clave de Qt como signals y slots, el uso de QObjects y el árbol de objetos, y brevemente introduce algunas clases y herramientas de Qt. El documento está estructurado en cuatro secciones principales: introducción, hola mundo, ahora en serio y avanzado.

Cargado por

h529212
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introduccin Hola mundo!

Ahora en serio Avanzado

Introduccin a Qt.
Desarrollo con C++ y Qt4 Salvador Alemany Garrido

14 de noviembre de 2010

Salvador Alemany Garrido Introduccin a Qt. 1/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

1 Introduccin 2 Hola mundo! 3 Ahora en serio 4 Avanzado

Salvador Alemany Garrido Introduccin a Qt. 2/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

1 Introduccin 2 Hola mundo! 3 Ahora en serio 4 Avanzado

Salvador Alemany Garrido Introduccin a Qt. 3/64

Introduccin Hola mundo! Ahora en serio Avanzado

Conocimientos previos
Requisitos Imprescidible: conocimientos bsicos de C++, o bien C y Java. Importante:
Saber usar las herramientas bsicas de desarrollo. Conocimientos bsicos de estructuras de datos. Leer uidamente ingls, la documentacin ocial est solo en ingls.

Objetivos Conocer los componentes y las posibilidades de Qt. Saber crear una aplicacin, y opciones bsicas. Presentar los cambios que introduce Qt a C++ Uso de widges bsicos.
Salvador Alemany Garrido Introduccin a Qt. 4/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qu es Qt?

Qt es un framework de desarrollo de aplicaciones multiplataforma. un conjunto de herramientas para facilitar el desarrollo de aplicaciones. Extensiones a la sintaxis de C++.

Salvador Alemany Garrido Introduccin a Qt. 5/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt como framework y herramientas

Salvador Alemany Garrido Introduccin a Qt. 6/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt, los mdulos I

contiene el ncleo no grco de Qt La coleccin bsica de componentes grcos Clases para escribir clientes y servidores TCP/IP Para facilitar el uso de openGL Expone las aplicaciones a scripting con un lenguaje ECMAscript QtScriptTools un depurador de QtScript QtSQL integracin de bases de datos QtSVG Soporte SVG

QtCore QtGui QtNetwork QtOpenGL QtScript

Salvador Alemany Garrido Introduccin a Qt. 7/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt, los Mdulos II

QtWebKit el popular motor web, con Qt QtXml soporte bsico de Xml QtXmlPatterns un motor de XQuery 1.0 y XPath 2.0 y parcialmente Xslt Phonon El framework multimedia Otros QtDeclarative, QtDessigner, QtUiTools, QtHelp, QtTest, QtDBus(solo Unix), QtOpenVG, Qt3Support y QtMultimedia Y an ms en Qt Solutions.

Salvador Alemany Garrido Introduccin a Qt. 8/64

Introduccin Hola mundo! Ahora en serio Avanzado

Herramientas
Desarrollo Editor de textos y/o IDE. Kate y Qt Creator qmake: gestin de proyectos Qt designer: diseador de interfaces Qt assistant: visor de documentacin Qt linguist, lupdate, lrelease: traduccin Otras Herramientas Cmake: alternativa ms exible y potente a qmake Gettext: traducciones Otros IDEs: Eclipse, Netbeans, Visual Studio
Salvador Alemany Garrido Introduccin a Qt. 9/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

1 Introduccin 2 Hola mundo! 3 Ahora en serio 4 Avanzado

Salvador Alemany Garrido Introduccin a Qt. 10/64

Introduccin Hola mundo! Ahora en serio Avanzado

Tipos I
QtGlobal: tipos bsicos

Tipos globales Se dispone de los tpicos alias para los tipos bsicos: Tipo Descripcin qintSIZE Entero con los tamaos: 8, 16, 32, 64 quintSIZE Entero sin signo de tamaos: 8, 16, 32, 64 qreal double, excepto en ARM que es oat quintptr Entero sin signo de ancho de palabra Ms en la documentacin(QtGlobal)

Salvador Alemany Garrido Introduccin a Qt. 11/64

Introduccin Hola mundo! Ahora en serio Avanzado

Tipos II
Contenedores genricos

Qt incluye una coleccin de contenedores genricos: QList es el contenedor genrico ms usado, no es una lista enlazada como std::list (el equivalente sera QLinkedList) sino que internamente usa un indice en array, es la clase padre de QStringList clave para gestionar colecciones de QString. Otros: QLinkedList, QVector, QStack, QQueue, QSet, QMap, QMultiMap, QHash, QMultiHash. Lo contenedores de Qt disponen de 2 tipos de iteradores: estilo STL, y estilo Java, que aputan entre los elementos y no a los elementos. Ms informacin en Container Classes
Salvador Alemany Garrido Introduccin a Qt. 12/64

Introduccin Hola mundo! Ahora en serio Avanzado

Tipos II
Las clases bsicas del sistema de objetos

QObject La base del sistema de objetos de Qt. Todo Widget y la mayora de las otras clases de Qt heredan de l. QApplication o QCoreApplication La clase QApplication efecta el control de ujo y las opciones principales de la aplicacin. Solo una instancia por aplicacin. Debe crearse antes de cualquier objeto relacionado con la GUI. QWidget La base de todos los objetos de interfaz de usuario. Los ms comunes son QMainWindow y QDialog y sus subclases.
Salvador Alemany Garrido Introduccin a Qt. 13/64

Introduccin Hola mundo! Ahora en serio Avanzado

Hola mundo

Salvador Alemany Garrido Introduccin a Qt. 14/64

Introduccin Hola mundo! Ahora en serio Avanzado

1er Programa
Hola mundo!, el cdigo

ejemplo
#i n c l u d e <Q A p p l i c a t i o n > #i n c l u d e <QLabel> i n t main ( i n t a r g c , char a r g v [ ] ) { Q A p p l i c a t i o n app ( a r g c , a r g v ) ; // 1 C r e a r una app // y s o l o una , QLabel l a b e l ( " Hello Qt!" ) ; // 2 C r e a r un w i d g e t l a b e l . show ( ) ; // 3 Mostramos e l w i d g e t r e t u r n app . e x e c ( ) ; // 4 E j e c u t a m o s }

Salvador Alemany Garrido Introduccin a Qt. 15/64

Introduccin Hola mundo! Ahora en serio Avanzado

Compilacin

Procedimiento Si vas a trabajar sin soporte de un IDE, para compilar debes hacer lo siguiente, desde la carpeta del proyecto. 1 qmake -project # Genera proyecto # independiente de SO y compilador 2 qmake # Genera Makefiles 3 make # Compila 4 ??? # como se llame tu programa 5 profit

Salvador Alemany Garrido Introduccin a Qt. 16/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

1 Introduccin 2 Hola mundo! 3 Ahora en serio 4 Avanzado

Salvador Alemany Garrido Introduccin a Qt. 17/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

3 Ahora en serio

Extensiones a C++ Algunas clases de inters Herramientas

Salvador Alemany Garrido Introduccin a Qt. 18/64

Introduccin Hola mundo! Ahora en serio Avanzado

Extensiones a C++ I
Usar C++ estndar? Es broma?

Qt extiende C++ Qt incluye una serie de funcionalidades que no estn normalmente en C++. Para ello usa su propio preprocesador llamado MOC(Meta-Object Compiler) Los Metaobjetos Qt usa en gran parte de su API un tipo especial de objetos no nativo de C++, los metabjetos, los cuales se caracterizan por. signals y slots Propiedades, Arboles de objetos. QVariant Eventos, Timers: Vase Timers
Salvador Alemany Garrido Introduccin a Qt. 19/64

Introduccin Hola mundo! Ahora en serio Avanzado

QObject
Quizs quiso decir [Link]?

Uso Para crear y usar un metaobjeto tenemos que hacer 3 cosas: 1 Heredar de QObject. 2 Incluir Q_OBJECT en la primera lnea de la declaracin. 3 Usar moc, gestionado por qmake o cmake.

Salvador Alemany Garrido Introduccin a Qt. 20/64

Introduccin Hola mundo! Ahora en serio Avanzado

QObject II

Ejemplo
c l a s s MyDialog : p u b l i c QDialog { Q_OBJECT public : MyDialog ( QWidget p a r e n t = 0 ) ; // A t e n t o s a ~MyDialog ( ) ; // e s t e argumento o p c i o n a l private : QPushButton b u t t o n ; };

Salvador Alemany Garrido Introduccin a Qt. 21/64

Introduccin Hola mundo! Ahora en serio Avanzado

Signals y Slots I
Son un mecanismo de comunicacin entre objetos que heredan de QObject. Caractersticas: Son type-safe, la rma de la seal debe encajar con la rma del slot Los slots son funciones que pueden ser llamados normalmente. Los slots privados, pueden ser invocados por una seal cualquiera independientemente del nivel de acceso. Las clases que emiten seales no necesitan preocuparse de que slot recibe la seal.

Salvador Alemany Garrido Introduccin a Qt. 22/64

Introduccin Hola mundo! Ahora en serio Avanzado

Signals y slots II
Declaracin de Slots

Slots Simplemente mtodos en una clase que herede de QObject con la macro Q_OBJECT, declarados despus de una de las siguientes lneas: public slots: protected slots: private slots:

Salvador Alemany Garrido Introduccin a Qt. 23/64

Introduccin Hola mundo! Ahora en serio Avanzado

Signals y slots III


Emisin de seales

signals Se declaran como si fueran funciones, en una seccin propia, pero no se implementan. El moc genera el cdigo necesario. uso s i g n a l s : // D e c l a r a r exampleSignal ( int emitValue ) ; // e j e m p l o de e m i t i r emit exampleSignal ( 4 ) ;

Salvador Alemany Garrido Introduccin a Qt. 24/64

Introduccin Hola mundo! Ahora en serio Avanzado

Signals y slots IV: Connect

La API de la conexin de un signal y un slot es:


c o n n e c t ( const QObject s e n d e r , const char s i g n a l , const QObject r e c e i v e r , const char s l o t , Qt : : C o n n e c t i o n T y p e t y p e = Q t A u t o C o n n e c t i o n ) Ejemplo c o n n e c t ( b u t t o n , SIGNAL ( c l i c k e d ( ) ) , qApp , SLOT( q u i t ( ) ) ) ; // qApp e s p a r a a c c e d e r a l a Q A p p l i c a c t i o n g l o b a l

Salvador Alemany Garrido Introduccin a Qt. 25/64

Introduccin Hola mundo! Ahora en serio Avanzado

El rbol de objetos

Utilidad Los QObjects se organizan a si mismos en arboles de objetos. Cuando creas un QObject con otro como padre, es aadido a la lista de hijos(accesible con children()) y ser borrado cuando el padre lo sea. b u t t o n = new QPushButton ( "Salir" , t h i s ) ;

Salvador Alemany Garrido Introduccin a Qt. 26/64

Introduccin Hola mundo! Ahora en serio Avanzado

El rbol de objetos

Salvador Alemany Garrido Introduccin a Qt. 27/64

Introduccin Hola mundo! Ahora en serio Avanzado

Eventos
Que hacer con ellos

Los eventos en Qt son objetos que derivan de la clase QEvent. Tpicamente para manejar eventos de forma personalizada reimplementamos funciones virtuales. Un ejemplo sera QMouseEvent.

Salvador Alemany Garrido Introduccin a Qt. 28/64

Introduccin Hola mundo! Ahora en serio Avanzado

Propiedades: Q_PROPERTY
Qt incluye un sosticado sistema de propiedades, similar al que proporcionan algunos compiladores.
Q_PROPERTY( t y p e name READ g e t F u n c t i o n [ WRITE s e t F u n c t i o n ] [ RESET r e s e t F u n c t i o n ] [ DESIGNABLE bool ] [ SCRIPTABLE bool ] [ STORED bool ] [ USER bool ] )

Salvador Alemany Garrido Introduccin a Qt. 29/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

3 Ahora en serio

Extensiones a C++ Algunas clases de inters Herramientas

Salvador Alemany Garrido Introduccin a Qt. 30/64

Introduccin Hola mundo! Ahora en serio Avanzado

QWidget

Hereda de QObject y QPaintDevice La base de todos los widgets, y componente atmico de la interfaz. Un Widget sin un padre es una ventana independiente. setWindowTitle() y setWindowIcon() establecen la barra de titulo y el icono respectivamente. El constructor de todo Widget debe aceptar uno o 2 de los argumentos siguientes: QWidget *parent = 0: Si es 0 ser una ventana principal. Qt::WindowFlags f = 0: establecer parmetros especiales para la ventana.

Salvador Alemany Garrido Introduccin a Qt. 31/64

Introduccin Hola mundo! Ahora en serio Avanzado

QWidget

QWidget(e hijos) usa doble-buer automticamente Es posible crear ventanas con transparencias. (en X11: solo
con Kwin o Compiz) Aparte de los estilos estndar podemos aplicar estilos usando CSS. Funcionalidades bsicas: cursores, eventos, deteccin de pantalla completa, tooltips...

Salvador Alemany Garrido Introduccin a Qt. 32/64

Introduccin Hola mundo! Ahora en serio Avanzado

Dilogos I
QDialog e hijos

QDialog es la base de las ventanas de dilogos. Disponemos bsicamente de: QColorDialog QErrorMessage QFontDialog QInputDialog QPageSetupDialog QPrintDialog QProgressDialog QWizard QFileDialog QMessageBox QPrintPreviewDialog

Salvador Alemany Garrido Introduccin a Qt. 33/64

Introduccin Hola mundo! Ahora en serio Avanzado

Dilogos II
Descripcin detallada

Un dialogo es una ventana de primer nivel siempre, usada para tareas y comunicaciones breves con el usuario. Posibilidades Dilogos modales: se aplica con exec() Dilogos no modales: usando el mtodo show() Botones por defecto: Se cierran con ESC: ejecutando reject() en la salida Extensibilidad: vase Extension example

Salvador Alemany Garrido Introduccin a Qt. 34/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt MainWindow Framework
QMainWindow y amigos

Podemos entender que QMainWindow nos proporciona un marco de trabajo, para construir una GUI. QMainWindow tiene su propio layout al que se puede aadir QToolBars, QDockWidgets, un QMenu, y una QStatusBar.

Salvador Alemany Garrido Introduccin a Qt. 35/64

Introduccin Hola mundo! Ahora en serio Avanzado

QMainWindow
El widget central

El widget central puede ser cualquier widged de Qt como QTextEdit o QGraphicsView o uno personalizado. Establecemos el widget central con setCentralWidget() Una ventana principal puede tener una nico(SDI) o mltiple(MDI) interfaz de documentos. Para hacer una aplicacin MDI establece una QMDIArea como widget principal. Podemos almacenar y restaurar el layout con: saveState(); restoreState();
Salvador Alemany Garrido Introduccin a Qt. 36/64

Introduccin Hola mundo! Ahora en serio Avanzado

QMainWindow
Mens

Creacin de mens Los mens se implementan con QMenu y se mantienen organizados en una QMenubar. Cada entrada es una QAction. Aadimos mens con addMenu(QMenu), y acciones a los mens con con addAcction(QAction) Ejemplo

void MainWindow : : c r e a t e M e n u s ( ) { f i l e M e n u = menuBar()>addMenu ( t r ( "&File" ) ) ; f i l e M e n u >a d d A c t i o n ( newAct ) ; f i l e M e n u >a d d A c t i o n ( openAct ) ; f i l e M e n u >a d d A c t i o n ( s a v e A c t ) ;

Salvador Alemany Garrido Introduccin a Qt. 37/64

Introduccin Hola mundo! Ahora en serio Avanzado

QMainWindow
Toolbars: barras de herramientas

Creacin de toolbars creamos una instancia de QToolBar y la aadimos con addToolbar, los elementos tambin son QActions. Ejemplo void MainWindow : : c r e a t e T o o l B a r s ( ) { f i l e T o o l B a r = addToolBar ( t r ( "File" ) ) ; f i l e T o o l B a r >a d d A c t i o n ( newAct ) ;

Salvador Alemany Garrido Introduccin a Qt. 38/64

Introduccin Hola mundo! Ahora en serio Avanzado

QString I

Clase de manejo de texto Unicode. Almacena una cadena de QChars, siendo cada QChar de 16 bits Usa comparticin implcita de memoria, con copia en escritura. Dispone de funciones para convertir de y a nmeros Es muy recomendable manejar las listas de QStrings usando QStringList

Salvador Alemany Garrido Introduccin a Qt. 39/64

Introduccin Hola mundo! Ahora en serio Avanzado

QString II

Dispone de 4 conversiones a const char * toAscii(): Autoexplicativo toLatin(): Convierte a una cadena de la codicacin latin-1(ISO 8859-1 toUtf8(): Convierte a UTF-8 toLocal8Bit(): A la codicacin local

Salvador Alemany Garrido Introduccin a Qt. 40/64

Introduccin Hola mundo! Ahora en serio Avanzado

QString III
Las QStrings pueden ser tratadas como tipos bsicos como int. Inicializacin Bastante tpica, diversas alternativas:
Q S t r i n g s t r 1 ( " Hello " ) ; Q S t r i n g s t r 2 = " Hello " ; s t a t i c const QChar d a t a [ 4 ] = {0 x0055 , 0 x006e , 0 x10e3 , 0 x03a3 } ; Q S t r i n g s t r 3 ( data , 4 ) ; Tambin carcter a carcter.

O en retornos de funciones. return s t r 1 ;

Salvador Alemany Garrido Introduccin a Qt. 41/64

Introduccin Hola mundo! Ahora en serio Avanzado

Otros widgets bsicos

Botones QCheckBox, QPushButton, QRadioButton, QToolButton y QCommandLinkButton. Texto QLineEdit, QPlainTextEdit, QTextEdit, QTextBrowser Otros contenedores QMDIArea, QTabWidget, QStackedWidget

Salvador Alemany Garrido Introduccin a Qt. 42/64

Introduccin Hola mundo! Ahora en serio Avanzado

Layouts
Layouts convencionales para widgets convencionales

Basicamente se usan las siguientes posibilidades: QHBoxLayout organiza los widgets en una la horizontal QVBoxLayout alnea los widgets en una columna vertical QGridBoxLayout organiza los widgets en una rejilla, un widget puede ocupar varias casillas QFormLayout Alternativa de alto nive a QGridBoxLayout para layouts de 2 columnas.

Salvador Alemany Garrido Introduccin a Qt. 43/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

3 Ahora en serio

Extensiones a C++ Algunas clases de inters Herramientas

Salvador Alemany Garrido Introduccin a Qt. 44/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt Designer I

Necesidad Escribir cdigo de interfaces tiene mucho de aburrido, repetitivo y rutinario. El paradigma WYGIWYS tiene ventajas. designer Para, disear y crear interfaces de forma visual y cmoda con Qt disponemos de Qt Designer, bien standalone, bien integrado en Eclipse o Qt Creator

Salvador Alemany Garrido Introduccin a Qt. 45/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt Designer
En imgenes I

La interfaz puede ser congurada para funcionar con una sola o con varias ventanas.

Salvador Alemany Garrido Introduccin a Qt. 46/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt Designer
En imgenes II

Salvador Alemany Garrido Introduccin a Qt. 47/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt Designer

La mejor manera de aprender a usar un diseador de interfaces es usarlo. En caso de duda consulta primero la documentacin.

Salvador Alemany Garrido Introduccin a Qt. 48/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake I

Qmake es la herramienta de generacin de Makeles ocial de Qt4. Caractersticas: Optimizado para Qt4 Automticamente genera reglas de compilacin para moc y uic. Genera proyectos para el Visual Studio.

Salvador Alemany Garrido Introduccin a Qt. 49/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake II
Variables I

Modicamos valores de una variable con la sintaxis: VARIABLE = valor SOURCES Ficheros de cdigo fuente del proyecto. Algunas variables de inters: SOURCES: los cheros de cdigo fuente. SOURCES += [Link] HEADERS: cabeceras del proyecto. HEADERS += le.h FORMS: Archivos de interfaces(.ui) FORMS += [Link] TARGET: nombre de la aplicacin o librera; por defecto el nombre del proyecto CONFIG: opciones, merece un vistazo en profundidad

Salvador Alemany Garrido Introduccin a Qt. 50/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake III

RESOURCES: una lista de cheros de recursos a incluir TEMPLATE: la plantilla a usar para el proyecto disponemos de app, lib, subdirs(reglas para subdirectorios), vcapp, vclib. DEFINES: para incluir deniciones con el preprocesador QT: indica que componentes de Qt incluye el proyecto, por defecto core y gui

Salvador Alemany Garrido Introduccin a Qt. 51/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake IV
Los mdulos de Qt

Opcin core gui network opengl sql svg xml xmlpatterns webkit qt3support

Modulo QtCore QtGui QtNetwork QtOpenGL QtSql QtSvg QtXml QtXmplPatterns QtWebKit Qt3Support

Salvador Alemany Garrido Introduccin a Qt. 52/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake V
CONFIG

CONFIG es el cajn de sastre de las opciones.


Opcin release debug debug_and_release debug_and_release_target build_all warn_on warn_o Descripcin Crea el proyecto en modo release Crea el proyecto en modo debug Crea el proyecto en ambos modos dem y en subdirectorios compila todos los modos Habilita todos los warnings posibles Deshabilita bastantes warnings

Salvador Alemany Garrido Introduccin a Qt. 53/64

Introduccin Hola mundo! Ahora en serio Avanzado

qmake
Consejos y recordatorios

Comandos Crear proyecto con: qmake -project Generar Makeles simplemente: qmake Notas QMAKE_LFLAGS += -s en modo release para generar ejecutables ms pequeos Puedes dar opciones dependientes de plataforma simplemente poniendo el nombre de la plataforma seguido de unas llaves y las opciones entre ellas Lee la documentacin, hay para hacer 40 transparencias ms, aparte de funcionalidades no documentadas.
Salvador Alemany Garrido Introduccin a Qt. 54/64

Introduccin Hola mundo! Ahora en serio Avanzado

Qt Assistant

La aplicacin Es un sencillo y potente visor de documentacin en formato QCH(Qt compressed help). Permite aadir nuestra propia documentacin. Que informacin contiene? Por defecto incluye la documentacin de Qt, qmake, Qt Assistant, Qt Dessigner, Qt Linguist, y en ocasiones Qt Creator.

Salvador Alemany Garrido Introduccin a Qt. 55/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

1 Introduccin 2 Hola mundo! 3 Ahora en serio 4 Avanzado

Salvador Alemany Garrido Introduccin a Qt. 56/64

Introduccin Hola mundo! Ahora en serio Avanzado

Contenido

4 Avanzado

Programacin Modelo-Vista

Salvador Alemany Garrido Introduccin a Qt. 57/64

Introduccin Hola mundo! Ahora en serio Avanzado

Componentes del modelo-vista

models Proporcionan una interfaz estndar que vistas y delegados usan para acceder a los datos. Los datos en si no estn almacenados en el modelo. Aunque podran estarlo. Views las vistas obtienen datos del modelo y los muestran al usuario. Delegates Obtienen datos de los usuarios.

Salvador Alemany Garrido Introduccin a Qt. 58/64

Introduccin Hola mundo! Ahora en serio Avanzado

Las Graphics view


Las Graphics View proporcionan una supercie para gestionar e interactuar con un gran nmero de componentes 2D personalizados. Como aproximacin al Model-View Es un modelo basado en componentes. Varias vistas pueden observar una misma escena y una escena puede contener items de variados shapes geomtricos. La escena: Proporcionada por QGraphicsScene La vista: Proporcionada por QGraphicsView El item: proporcionado por QGraphicsItem, y QGraphicsWidget(No hereda de QWidget)

Salvador Alemany Garrido Introduccin a Qt. 59/64

Introduccin Hola mundo! Ahora en serio Avanzado

Otros puntos de interes I


Dentro de QtGui

Qt Style Sheets:1 hojas de estilo con una sintaxis similar a la del CSS web. Drag and Drop: arrastrar y soltar La pgina All Overviews and HOWTOs puede ser un buen punto de inicio para buscar en caso de buscar informacin sobre temas de inters como la internacionalizacin, intercomunicacin de procesos, teclados, plugins, integracin con el escritorio...

Consultar las pginas con estos nombres


Salvador Alemany Garrido Introduccin a Qt. 60/64

Introduccin Hola mundo! Ahora en serio Avanzado

Otros puntos de interes II


General

QNetworkAccessManager. QtConcurrent, primitivas orientadas a objetos para programacin multihilo, as como apis de alto nivel. Otros cosas a tener en cuenta al desarrollar aplicaciones como manejo de eventos(ms general), y recursos(qrc)

Salvador Alemany Garrido Introduccin a Qt. 61/64

Introduccin Hola mundo! Ahora en serio Avanzado

Recapitulando

Conceptops Qt, plataforma para desarrollar aplicaciones. No uses std::string Usa qmake o cmake Es que clases que hereden de QObject deben incluir la macro Q_OBJECT aunque no usen signals slots. Investiga en Qt Solutions, y Qxt en busca de libreras.

Salvador Alemany Garrido Introduccin a Qt. 62/64

Introduccin Hola mundo! Ahora en serio Avanzado

Fuentes
Recursos tiles si quieres profundizar

Web de la documentacin de Qt C++ Gui Programming with Qt4, 2nd Edition Jasmin Blanchette y Mark Summerfield Edicin vieja disponible para descarga. An introduction to design patterns in C++ with Qt 4 Ezust, Alan, Upper Saddle River [etc.]

Salvador Alemany Garrido Introduccin a Qt. 63/64

Introduccin Hola mundo! Ahora en serio Avanzado

Preguntas o sugerencias?

Salvador Alemany Garrido


salalgar@[Link]

Salvador Alemany Garrido Introduccin a Qt. 64/64

También podría gustarte