Sie sind auf Seite 1von 10

Qt

Conceptos Generales de Qt
Qt: es una biblioteca multiplataforma ampliamente usada para desarrollar aplicaciones
con una interfaz grfica de usuario as como tambin para el desarrollo de programas
sin interfaz grfica como herramientas para la lnea de comandos y consolas para
servidores. Qt utiliza el lenguaje de programacin C++ de forma nativa. Funciona en
todas las principales plataformas, y tiene un amplio apoyo. El API de la biblioteca
cuenta con mtodos para acceder a bases de datos mediante SQL, as como uso de
XML, gestin de hilos, soporte de red, una API multiplataforma unificada para la
manipulacin de archivos y una multitud de otros para el manejo de ficheros, adems
de estructuras de datos tradicionales. Distribuida bajo los trminos de GNU Lesser
General Public License (y otras), Qt es software libre y de cdigo abierto.

Lenguaje C++
C++: es un lenguaje de programacin diseado a mediados de los aos 1980 por
Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de
programacin C con mecanismos que permitan la manipulacin de objetos. En ese
sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un
lenguaje hbrido. Posteriormente se aadieron facilidades de programacin genrica,
que se sum a los otros dos paradigmas que ya estaban admitidos (programacin
estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++
es un lenguaje de programacin multiparadigma.

Compilador
Compilador: es un programa informtico que traduce un programa escrito en un
lenguaje de programacin a otro lenguaje de programacin, generando un programa
equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje
es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o
simplemente texto. Este proceso de traduccin se conoce como compilacin. Un
compilador es un programa que permite traducir el cdigo fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de

mquina). De esta manera un programador puede disear un programa en un lenguaje


mucho ms cercano a como piensa un ser humano, para luego compilarlo a un
programa ms manejable por una computadora.

Entorno de Desarrollo Integrado


IDE (entorno de desarrollo integrado): es un programa informtico compuesto por un
conjunto de herramientas de programacin. Un IDE es un entorno de programacin que
ha sido empaquetado como un programa de aplicacin, es decir, consiste en un editor
de cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI).

Biblioteca
Biblioteca: es un conjunto de subprogramas utilizados para desarrollar software. Las
bibliotecas contienen cdigo y datos, que proporcionan servicios a programas
independientes, es decir, pasan a formar parte de estos. Esto permite que el cdigo y
los datos se compartan y puedan modificarse de forma modular. Algunos programas
ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la
mayora de estas no son ejecutables. Ejecutables y bibliotecas hacen referencias
(llamadas enlaces) entre s a travs de un proceso conocido como enlace, que por lo
general es realizado por un software denominado enlazador.

Historia de Qt
Fue desarrollado inicialmente por Haavard Nord (CEO de Trolltech) y Eirik ChambeEng (presidente de Trolltech). Haavard y Eirik se reunieron en el Instituto Noruego de
Tecnologa de Trondheim, donde ambos se graduaron con una maestra en ciencias de
la computacin. El kit de herramientas se llam Qt porque la letra Q luca atractiva en la
fuente Emacs la cual era muy usada por Haavard en su trabajo, y "t" se inspir en Xt, el
kit de herramientas X "X Tool kit".
Inicialmente Qt apareci como biblioteca desarrollada por Trolltech (en aquel momento
Quasar Technologies) en 1992 siguiendo un desarrollo basado en el cdigo abierto,

pero no completamente libre. Originalmente permita desarrollo de software cerrado


mediante la compra de una licencia comercial, o el desarrollo de software libre usando
la licencia Free Qt. Esta ltima no era una licencia real de software libre dado que no
permita redistribuir versiones modificadas de Qt.
Se us activamente en el desarrollo del escritorio KDE (entre 1996 y 1998), con un
notable xito y rpida expansin, camino de convertirse en uno de los escritorios ms
populares de GNU/Linux.
Este hecho causaba preocupacin desde el proyecto GNU, ya que vean como una
amenaza para el software libre que uno de los escritorios libres ms usados se
apoyase en software propietario. Para contrarrestar esta situacin se plantearon dos
ambiciosas iniciativas: por un lado el equipo de GNU en 1997 inici el desarrollo del
entorno de escritorio GNOME con GTK+ para GNU/Linux. Por otro lado se intent
hacer una biblioteca compatible con Qt pero totalmente libre, llamada Harmony.
En 1998 desarrolladores de KDE se reunieron con Trolltech para establecer la KDE
Free Qt Foundation, que estableca que si Trolltech dejaba de desarrollar la versin
gratuita y semi-libre de Qt la propia Fundacin podra liberar la ltima versin publicada
de la biblioteca Qt bajo una licencia tipo BSD.
Con la versin 2.0 se cambi a la licencia Q Public License, considerada de cdigo
abierto. Este cambio pretenda acallar las crticas a Qt y KDE que alegaban que no era
software libre. Sin embargo, QPL no era compatible con la licencia GPL que usaba
KDE, por lo que hubo voces que afirmaban que se estaba violando la licencia GPL al
mezclar software QPL (la biblioteca Qt) con software GPL (KDE).
El 4 de septiembre de 2000, Trolltech comenz a ofrecer la biblioteca Qt en su versin
2.1 bajo la licencia GPL en su versin para Linux. La versin para Mac OS X no se
public bajo GPL hasta junio de 2003, mientras que la versin para Windows fue
publicada bajo la licencia GPL en junio de 2005.
El 18 de enero de 2008, Trolltech anunci que tambin ofrecera Qt bajo la licencia
GPL v3.
En junio de 2008, Nokia adquiri Trolltech, para desarrollar aplicaciones de escritorio y
para dispositivos mviles. Esta ltima fue integrada a Nokia como Qt Software.
El 14 de enero de 2009, Nokia anunci que Qt v4.5 se licenciara adicionalmente bajo
la licencia LGPL 2.1, con el lema Qt Everywhere.
Nokia anunci que va a detener sus desarrollos en Symbian para usar la plataforma de
Microsoft para sus telfonos inteligentes en febrero de 2011.
El 9 de agosto de 2012, Digia anunci un acuerdo con Nokia para la adquisicin de Qt.
Algunos de los planes de Digia son el desarrollo de Qt para Android, iOS y Windows 8.

Qt cuenta actualmente con un sistema de triple licencia: GPL v2/v3 para el desarrollo
de software de cdigo abierto y software libre, la licencia de pago QPL para el
desarrollo de aplicaciones comerciales, y a partir de la versin 4.5 una licencia gratuita
pensada para aplicaciones comerciales, LGPL.

Ventajas de Qt
Qt es completamente gratuito para aplicaciones de cdigo abierto.
Las herramientas, libreras y clases estn disponibles para casi todas las
plataformas Unix y sus derivados (como Linux, MacOS X, Solaris, etc.) como
tambin para la familia Windows, por lo que una aplicacin puede ser compilada
y utilizada en cualquier plataforma sin necesidad de cambiar el cdigo y la
aplicacin se ver y actuar mejor que una aplicacin nativa.
Qt tiene una extensa librera con clases y herramientas para la creacin de ricas
aplicaciones. Estas libreras y clases estn bien documentadas, son muy fciles
de usar y tienen una gran herencia de programacin orientada a objetos lo cual
hace de la programacin de interfaces grficas una aventura placentera.

Utilidades de Qt
Permite disear y construir widgets y dilogos usando forms
con los mismos widgets que se usarn en la aplicacin. Los componentes
creados con Qt designer pueden hacer uso del mecanismo de seales slots.
El GUI resultante puede previsualizarse para comprobar que tiene
el aspecto y se comporta segn desebamos.
Qt Designer puede usarse para desarrollar la aplicacin completa o
algunos de los forms solamente. Los forms que se crean usando Qt Designer
acaban traducindose en cdigo C++.
Existe otra utilidad llamada Qt Creator que incluye a Qt Designer como
una de sus utilidades. Qt Creator permite el desarrollo de la aplicacin
completa, y no solo el diseo de los forms.
Adems de Qt-Designer, Qt proporciona otras herramientas muy tiles
al desarrollar una aplicacin. La primera de ellas es Qt Assistant, que nos
permite navegar por la documentacin on-line de Qt. Entre otras cosas
podemos consultar la documentacin de cada una de las clases, as como
ejemplos de muchas de ellas. Adems contiene manuales de las otras

utilidades de Qt (Qt Designer, Qt Linguist, qmake).

Clases de Qt
La clase

QMainWindow proporciona una ventana principal de la aplicacin.

Descripcin Detallada
La clase QMainWindow proporciona una ventana principal de la aplicacin.
Marco Qt Ventana Principal.
Una ventana principal proporciona un marco para la construccin de la interfaz de
usuario de una aplicacin. Qt tiene QMainWindow y sus clases relacionadas para la
gestin de la ventana principal. QMainWindow tiene su propia disposicin a la que se
puede aadir QToolBars, QDockWidgets, un QMenuBar, y un QStatusBar. El diseo
tiene un rea central que puede ser ocupado por cualquier tipo de artilugio. Usted
puede ver una imagen de la disposicin a continuacin.

QWidget Clase
La clase QWidget es la clase base de todos los objetos de interfaz de usuario.

Descripcin Detallada
La clase QWidget es la clase base de todos los objetos de interfaz de usuario.
El widget es el tomo de la interfaz de usuario: recibe ratn, teclado y otros eventos
del sistema de ventanas, y pinta una representacin de s mismo en la pantalla. Cada
widget es rectangular, y que estn ordenadas en un orden Z. Un widget es recortado
por su padre y por los widgets en frente de ella.
Un widget que no est incrustado en un widget padre se llama una ventana. Por lo
general, las ventanas tienen un marco y una barra de ttulo, aunque tambin es
posible crear ventanas sin tales decoracin usando banderas ventana adecuada). En
Qt, QMainWindow y las diversas subclases de QDialog son los tipos ms comunes de las
ventanas.
Constructor de cada widget de acepta uno o dos argumentos habituales:

QWidget * parent = 0 es el padre del nuevo widget. Si es 0 (por defecto), el nuevo


widget ser una ventana. Si no, va a ser un hijo de los padres, y ser limitada por la
geometra de los padres (a menos que especifique Qt :: ventana como la bandera de
la ventana).
Qt :: WindowFlags f = 0 (donde est disponible), establece las banderas de la
ventana; el valor predeterminado es adecuado para casi todos los widgets, pero para
obtener, por ejemplo, una ventana sin marco del sistema de ventanas, debe utilizar
banderas especiales.
QWidget tiene muchas funciones miembro, pero algunos de ellos tienen poca
funcionalidad directa; por ejemplo, QWidget tiene una propiedad de fuente, pero
nunca utiliza esta misma. Hay muchas subclases que proporcionan funcionalidad real,
como QLabel, QPushButton, QListWidget y QTabWidget.

QString Clase
La clase QString ofrece una cadena de caracteres Unicode.

Descripcin Detallada
La clase QString ofrece una cadena de caracteres Unicode.
QString tiendas de una cadena de QChars 16 bits, donde cada QChar corresponde un
carcter Unicode 4.0. (Caracteres Unicode con valores de cdigo por encima de 65535
se almacenan utilizando pares suplentes, es decir, dos QChars consecutivos.)
Unicode es un estndar internacional que apoya la mayora de los sistemas de
escritura en uso hoy en da. Es un superconjunto de US-ASCII (ANSI X3.4-1986) y Latin1 (ISO 8859-1), y todos los EE.UU.-ASCII / Latin-1 caracteres estn disponibles en las
mismas posiciones de cdigo.
Detrs de las escenas, QString utiliza intercambio implcito (copy-on-write) para
reducir el uso de memoria y evitar la copia innecesaria de datos. Esto tambin ayuda
a reducir la sobrecarga inherente de almacenamiento de caracteres de 16 bits en
lugar de caracteres de 8 bits.
Adems de QString, Qt tambin ofrece la clase QByteArray para almacenar bytes
primas y tradicional de 8 bits '\ cuerdas 0'terminados. Para la mayora de los
propsitos, QString es la clase que desea utilizar. Se utiliza en todo el API de Qt, y el
soporte Unicode garantiza que sus aplicaciones sern fciles de traducir, si desea

ampliar el mercado de su aplicacin en algn momento. Los dos casos principales en


QByteArray es apropiado es cuando usted necesita para almacenar datos binarios en
bruto, y cuando la conservacin de la memoria es fundamental (como en los sistemas
integrados).

QStringList Clase
La clase QStringList ofrece una lista de cadenas.

Descripcin Detallada
La clase QStringList ofrece una lista de cadenas.
QStringList hereda de QList <QString>. Como QList, QStringList est implcita
compartida. Proporciona acceso basado en el ndice rpido, as como inserciones y
eliminaciones rpidas. Pasando listas de cadenas como parmetros de valor es a la vez
rpido y seguro.

Todas las funcionalidades de QList tambin se aplica a QStringList. Por ejemplo,


puede utilizar estaVacia () para comprobar si la lista est vaca, y usted puede llamar
a funciones como append (), anteponga (), insert (), replace (), removeAll (),
RemoveAt (), removeFirst () , removeLast (), y removeOne () para modificar un
QStringList. Adems, QStringList proporciona algunas funciones de confort que hacen
que el manejo de listas de cadenas ms fcil.

QByteArray Clase
La clase QByteArray proporciona una matriz de bytes.

Descripcin Detallada
La clase QByteArray proporciona una matriz de bytes.
QByteArray se puede utilizar para almacenar tanto bytes primas (incluyendo '\ 0' s) y
tradicional 8-bit '0' \ cadenas terminadas. Usando QByteArray es mucho ms
conveniente que usar const char *. Detrs de las escenas, siempre se asegura de que
los datos es seguido por un '\ 0' terminador, y utiliza el intercambio implcito (copyon-write) para reducir el uso de memoria y evitar la copia innecesaria de datos.

Adems de QByteArray, Qt tambin ofrece la clase QString para almacenar datos de


cadena. Para la mayora de los propsitos, QString es la clase que desea utilizar.
Almacena caracteres Unicode de 16 bits, por lo que es fcil de almacenar no ASCII /
caracteres no latinos-1 en su aplicacin. Adems, QString se utiliza en todo en la API
de Qt. Los dos casos principales en QByteArray es apropiado es cuando usted necesita
para almacenar datos binarios en bruto, y cuando la conservacin de la memoria es
fundamental (por ejemplo, con Qt para Linux Embedded).
Una manera de inicializar un QByteArray es simplemente para pasar un const char * a
su constructor.

QTextStream Clase
La clase QTextStream ofrece una interfaz cmoda para la lectura y la escritura de
texto.

Descripcin Detallada
La clase QTextStream ofrece una interfaz cmoda para la lectura y la escritura de
texto.
QTextStream puede operar en un QIODevice, un QByteArray o una QString. Utilizacin
de operadores de streaming de QTextStream, se puede leer bien y escribir palabras,
lneas y nmeros. Para la generacin de texto, QTextStream soporta opciones de
formato para el relleno de campo y la alineacin, y el formato de los nmeros.

QFile Clase
La clase QFile proporciona una interfaz para la lectura y escritura a los archivos.

Descripcin Detallada
La clase QFile proporciona una interfaz para la lectura y escritura a los archivos.
QFile es un dispositivo de E / S para leer y escribir archivos de texto y binarios y
recursos. A QFile puede ser utilizado por s mismo o, ms convenientemente, con un
QTextStream o QDataStream.
El nombre del archivo por lo general se pasa en el constructor, pero se puede ajustar
en cualquier momento utilizando setFileName (). QFile espera que el separador de

archivo a ser '/' independientemente del sistema operativo. El uso de otros


separadores (por ejemplo, '\') no es compatible.
Puede comprobar la existencia de un archivo usando existe (), y eliminar un archivo
usando remove (). (Operaciones relacionadas Ms de sistema de archivos avanzado son
proporcionados por QFileInfo y QDir.)
El archivo se abre con open (), cerrado con close (), y se inund con flush (). Los datos
se suelen leer y escribir usando QDataStream o QTextStream, pero tambin se puede
llamar a las funciones heredadas-QIODevice leen (), readLine (), readAll (), write ().
QFile tambin hereda getChar (), putChar (), y ungetChar (), que funciona un carcter
a la vez.
El tamao del archivo es devuelto por tamao (). Puede obtener la posicin actual del
fichero usando pos (), o trasladarse a una nueva posicin archivo usando seek (). Si
usted ha llegado al final del archivo, atEnd () devuelve true.

QList Clase
La clase QList es una clase de plantilla que proporciona listas.

Descripcin Detallada
La clase QList es una clase de plantilla que proporciona listas.
QList <T> es una de las clases de contenedores genricos de Qt. Almacena una lista de
valores y proporciona acceso basado en ndices rpida, as como inserciones y
eliminaciones rpidas.
QList <T>, QLinkedList <T> y QVector <T> proporcionar una funcionalidad similar. He
aqu un resumen:
Para la mayora de los propsitos, QList es la clase de derecho de uso. Su API
basados en ndices es ms conveniente que la API basada en iterador de QLinkedList,
y por lo general es ms rpido que QVector debido a la forma en que almacena sus
artculos en la memoria. Tambin se ampla para menos cdigo en tu ejecutable.
Si necesita una lista de bienes vinculados, con garantas de inserciones de tiempo
constantes en la mitad de la lista e iteradores de artculos en lugar de ndices, utilice
QLinkedList.
Si usted quiere los artculos a ocupar posiciones de memoria adyacentes, utilice
QVector.

Internamente, QList <T> se representa como una matriz de punteros a los elementos
de tipo T. Si T es en s mismo un tipo de puntero o un tipo bsico que no es ms
grande que un puntero, o si T es una de las clases compartidas de Qt, entonces QList
<T> almacena los elementos directamente en la matriz de punteros. Para las listas en
virtud de mil artculos, esta representacin array permite inserciones muy rpidos en
el medio, y que permite el acceso basado en ndices. Por otra parte, las operaciones
como Anteponer () y append () son muy rpido, porque QList preasigna memoria en
ambos extremos de su matriz interna. (Ver algortmico Complejidad para ms
detalles.) Tenga en cuenta, sin embargo, que para los elementos de la lista no
compartidos que son mayores que un puntero, cada anexar o insercin de un nuevo
tema requiere asignar el nuevo elemento en el montn, y esta asignacin por artculo
podra hacer un QVector mejor opcin en los casos que hacen un montn de anexar o
insertar, ya QVector asigna memoria para sus artculos en una sola asignacin del
montn.
Tenga en cuenta que la matriz interna slo alguna vez se hace ms grande durante la
vida de la lista. Nunca se contrae. La matriz interna se desasigna por el destructor y
por el operador de asignacin, cuando se asigna una lista a otra.

Das könnte Ihnen auch gefallen