Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual QT
Manual QT
UNIVERSIDAD CENTROCCIDENTAL
LISANDRO ALVARADO
DECANATO DE CIENCIAS Y TECNOLOGA
DEPARTAMENTO DE SISTEMAS
Manual
Introduccin al Desarrollo De Interfaces Grficas
Con las libreras Qt
Qt Designer
Manual
Introduccin al Desarrollo De Interfaces Grficas
Con las libreras Qt
Qt Designer
Integrantes
Camacho, Juan C.I: 13.566.296
Garcia, Miguel Angel C.I: 15.692.800
Ramos, Alberto C.I: 14.031.014
Za Avila, Filiberto C.I: 13.557.244
PROF. Maritza Bracho de Rodrguez
CDIGO 7832
Tabla de contenidos
1. Introduccin
a. Idea
b. Requisitos
c. Organizacin
2. Resea
a. Caracteristicas
3. Instalando Qt
a. Instalando Qt/X11
b. Instalando Qt/Windows
c. Instalando Qt/Embedded
4. Modulos de Qt
a. Modulo Canvas
b. Modulo IconView
c. Modulo Network
i. Introduccin
ii. Trabajando un Protocolo de Red independiente con QUrlOperator y
QNetworkOperation
iii. Implementando tu propio Protocolo de Red
iv. Manejo de errores
d. Modulo Qt OpenGL 3D Graphics
i. Introduccin
ii. Instalacion
iii. Las Clases QGL
e. Modulo SQL
i. Introduccin
ii. Arquitectura SQL
iii. SQL Driver Plugins
iv. Conectando una Base de datos
v. Conectando una Base de datos Simple
vi. Conectando una Base de datos Mltiple
vii. Ejecutando Comandos SQL Usando QSqlQuery
viii. Transacciones
ix. Exploracion Bsica
x. Manipulacin Bsica de los Datos
xi. Navegando el Conjunto de Resultados
xii. Usando QSqlCursor
xiii. Insertando registros
xiv. Actualizando registros
xv. Eliminando registros
xvi. Widgets Data-Aware
xvii. Tablas Data-Aware
xviii. Subclases QSqlCursor
xix. Ejemplo de Tablas
f. Modulo Tables
g. Modulo Workspace
h. Modulo XML
i. Convenciones usadas en la documentacin Qt XML
i. Modulo ActiveQt Framework
i. QAxContainer
ii. QAxServer
Modulo Motif Extensin
i. Informacin
ii. How-to
iii. Problemas Comunes
k. Modulo Qt Netscape Plugin Extensin
i. Informacin
ii. How-to
iii. Construyendo bajo X11
iv. Construyendo bajo Windows
v. Errores conocidos y Limitaciones
Clases de Qt
QT-Designer
a. Caracteristicas
Creando la Aplicacin
a. Creando la Ventana Principal
b. El Archivo .pro
c. El Archivo main.cpp
Compilando y Ejecutando la Aplicacin por Vez Primera
Extendiendo la Funcionabilidad Mediante Acciones
a. El archivo .ui.h
b. Invocando una salida
Agregando los Widgets Estndar
a. Widgets: Tipos y Propiedades
b. Widgets: Laying Out
Agregando los Widgets Personales
a. Cargando las Descripciones
b. Conectando los Signals a los Slots
c. Compilando Mltiples Fuentes
Extendiendo la Funcionabilidad Mediante Dilogos
a. Acciones
b. El Resultado Final
j.
5.
6.
7.
8.
9.
10.
11.
12.
A. Crditos y Licencia
Captulo 1. Introduccin.
Idea
El objetivo de este taller es el de introducir el uso de la herramienta Qt- designer para hacer
el desarrollo de una aplicacin de modo visual. Particularmente, algunas de las cosas que se vern
son las siguientes:
Creacin visual de una aplicacin: incluyendo sus mens, toolbars, dilogos, etc.
Creacin de la vista (aka Widget) principal de la aplicacin. Nota: en Qt todo son
widgets, nada mas de controles, ni de ventanas, etc. En efecto, en contraste con el
termino ventana, que viene del mundillo de las oficinas, mediante la expresin widget se
busca denotar un concepto de interaccin mas general, por ejemplo una interfaz 3-D.
Conexin visual entre widgets, empleando el paradigma de SIGNALS/SLOTS. En la
opinin de unos, una de las mejores propiedades que posee Qt; en la de otros, una de las
peores cosas del mundo.
En el punto anterior, widget significa: widget de Qt.
Dos puntos atrs, widget tambin significa: widget creado por el usuario. Prueba de la
versatilidad del designer (que no por facilitarnos la vida, nos la limita, como sucede con la
mayora de IDE's), significa esto que un tercero crea un widget (con la herramienta que
mejor le venga) y este (me refiero al widget, no al usuario), se puede integrar sin el menor
de los problemas al designer. Es precisamente de este modo, que se ha conseguido integrar
los widgets de KDE al designer.
Para cumplir con los objetivos anteriores vamos a desarrollar la portentosa Canvas Demo,
cuyo aspecto es el siguiente:
La Canvas Demo hace exactamente lo que tienes en mente: si se clickea en uno de los
botones (correspondientes a instancias de la clase estndar QPushButton de Qt), adiciona el
elemento grafico correspondiente en el widget de arriba, que corresponde a una instancia de la clase
MyCanvasView. Esta clase se ha creado copiando cdigo de aqu y all de varios de los ejemplos
que vienen en las distribuciones de Qt.
Basta ahora con decir que es MyCanvasView. Pero digmoslo cmodamente, en lenguaje
UML:
Caractersticas:
Capitulo 3. Instalando Qt
El proceso de instalacin es difiere para las diferentes plataformas de Qt.
Qt/X11.
Qt/Windows.
Qt/Embedded
Instalando Qt/X11
Puede necesitar ser usuario root, dependiendo de los permisos de los directorios que se
escoga para la instalacin de Qt.
1. Desempaquete el archivo si no lo ha hecho en el directorio cd /usr/local.
2. Aplique la linea de comando en la consola gunzip qt-x11-version.tar.gz; descomprime
el archivo.
3. Aplique la linea de comando en la consola tar xf qt-x11-version.tar; desempaquta el
archivo. Esto crea la direccion /usr/local/qt-versin la cual contiene los archivos del
programa principal.
4. Renombre qt-versin a qt (o haga un symlink): mv qt-versin qt. El resto de los
archivos asumen que Qt se instalar en el directorio /usr/local/qt.
5. Ponga algunas variables de ambiente en el archivo .profile (o .login, dependiendo del
Shell) en su directorio Home. Cree el archivo si no esta all.
QTDIR--dondequiera que se haya instalado Qt.
PATH donde se localiza el programa y las otras herramientas de Qt.
MANPATHpara acceder a la pagina de Qt.
LD_LIBRARY_PATH--para la biblioteca compartida de Qt.
Esto es como sigue:
En .profile (si el Shell es bash, ksh, zsh o sh), agregue las lneas siguientes:
QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
En .login (en caso de que el Shell sea csh o tcsh), agregue las lneas siguientes:
setenv QTDIR /usr/local/qt
setenv PATH $QTDIR/bin:$PATH
setenv MANPATH $QTDIR/man:$MANPATH
setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH
Despus de haber hecho esto, se necesitar entrar de nuevo con su login, o recargar el perfil
antes de continuar, para que por lo menos $QTDIR est montado. La instalacin dar un mensaje
de error y no proceder de otra manera.
6. Instale el archivo de licencia. Para la edicin libre, usted no necesita un archivo de
licencia. Para el Profesional y ediciones Empresariales, instale su archivo de licencia
como se describa en su distribucin.
7. Compile la biblioteca de Qt, y construya el programa ejemplo, la gua didctica y las
herramientas (ej. Diseador de Qt) como sigue.
Instalando Qt/Windows
La distribucin de Qt/Windows es distribuda como un archivo autoextraible que se
construye e instala automaticamente. Simplemente siga el asistente de instalacin.
Instalando Qt/Embedded
Este proceso de instalacin est escrito para Linux. Puede necesitar ser modificado para
otras plataformas.
1. Desempaquete el archivo, si no lo ha hecho, cd <cualquier directorio>
2. gunzip qt-embedded-commercial-VERSION.tar.gz descomprime el archivo.
3. tar xf qt-embedded-commercial-VERSION.tar desempaqueta el archivo.
4. Reemplace VERSION con el Qt/Embedded versin nmero a lo largo de. Este
documento asume que el archivo se instala como ~/qt-embedded-commercialVERSION.
5. Compile la biblioteca de Qt/Embedded y ejemplos.
6. cd ~/qt-embedded-commercial-VERSION
7. export QTDIR=~/qt-embedded-commercial-VERSION
8. . /configure
9. make
El sistema de configuracin est diseado para permitir agregar las opciones para las
plataforma especficas, pero en general todos los sistemas de Linux que tienen el soporte del
framebuffer que puede ser usado bajo cualquier plataforma "linux-genric-g++". El sistema de
configuracin tambin soporta compiladores cruzados: para construir bajo Linux/x86 para
Linux/MIPSEL, se podria usar:
./configure -platform linux-x86-g++ -xplatform linux-mips-g++
Slo un pequeo nmero de configuraciones son predefinidas, todos mucho el mismo. Los
archivos de configuracin se encuentran en configs/.
10. Habilite el soporte de framebuffer. Puede necesitar recompilar el kernel para habilitar
el framebuffer. Este documento no describe cmo hacer esto; la pgina de HOWTOFramebuffer contiene una descripcin corta. (Usted ver el logotipo del pingino en el
momento en que el framebuffer sea habilitado.).
Modulo IconView
El mdulo IconView proporciona un poderoso visualizador widget llamado QIconView.
API y feature-wise it es similar a QListView y QListBox. Contiene artculos de pixmap
opcionalmente etiquetados, que el usuario puede seleccionar, arrastrar, renombre, anular, etc.
Modulo Network
Este mdulo es parte de la edicin Qt Enterprise.
Introduccin
Trabajando un Protocolo de Red independiente con QUrlOperator y QNetworkOperation
Implementando tu propio Protocolo de Red
Manejo de errores
Introduccin
El mdulo de red ofrece clases para hacer fcil y portble la programacin de redes. Hay
tres conjuntos de clases, primero las clases de bajo nivel como QSocket, esencialmente,
QServerSocket, QDns, etc. qu le permiten trabajar de una manera portble con sockets TCP/IP.
Hay clases adems, como QNetworkProtocol, QNetworkOperation en la libreria base de Qt, que
mantiene una capa abstracta llevando a cabo los protocolos de red y QUrlOperator que operan en
tales protocolos dentro de la red. Finalmente el tercer conjunto de clases de red que son los pasivos,
especficamente QUrl y QUrlInfo que hacen parsing de URL y similares.
El primero grupo de clases (QSocket, QServerSocket, QDns, QFtp, etc.) est incluido en
el mdulo de "red" de Qt.
Las clases QSocket no se relacionan directamente a las clases de QNetwork, pero los
QSocket deben y se usarn para implementarlos en los protocolos de red que se relacionan
directamente a las clases QNetwork. Por ejemplo, las clases QFtp (qu implementan protocolos
FTP) usan QSockets. Pero los QSockets no necesitan ser usados para las aplicaciones protocolares,
ej. QLocalFs (qu es una aplicacin del filesystem local como protocolo de la red) usa QDir y no
usa QSocket. Usando QNetworkProtocols puede implementar cualquier cosa que encaje dentro de
una estructura jerrquica y puede accederse usando URLs. Esto podra ser, por ejemplo, un
protocolo que puede leer cuadros de una cmara digital que usa una conexin en serie.
Trabajando un Protocolo de Red independiente con QUrlOperator y
QNetworkOperation
Es bastante fcil de usar existiendo implementaciones de protocolo de red y operaciones
sobre URLs. Por ejemplo, transmitir un archivo de un servidor FTP al filesystem local puede
hacerse con el cdigo siguiente:
Op de QUrlOperator;
Como mencion antes, algunas operaciones envan otras seales. Tomemos la lista de
operaciones hijas como ejemplo (ej. leer un directorio en un servidor de FTP):
QUrlOperator op;
MyClass::MyClass() : QObject(), op( "ftp://ftp.trolltech.com" ){
connect( &op, SIGNAL( newChildren( const QValueList<QUrlInfo> &,
QNetworkOperation * ) ), this, SLOT( slotInsertEntries(
const QValueList<QUrlInfo> &, QNetworkOperation * ) ) );
connect( &op, SIGNAL( start( QNetworkOperation * ) ),
this, SLOT( slotStart( QNetworkOperation *) ) );
}
void MyClass::slotInsertEntries( const QValueList<QUrlInfo> &info,
QNetworkOperation * ){
QValueList<QUrlInfo>::ConstIterator it = info.begin();
for ( ; it != info.end(); ++it ) {
const QUrlInfo &inf = *it;
qDebug( "Name: %s, Size: %d, Last Modified: %s", inf.name().latin1(),
inf.size(), inf.lastModified().toString().latin1() );
}
}
void MyClass::slotStart( QNetworkOperation * ){
qDebug( "Start reading '%s'", op.toString().latin1() );
}
void MyClass::slotFinished( QNetworkOperation *operation ){
if ( operation->operation() == QNetworkProtocol::OpListChildren ) {
if ( operation->state() == QNetworkProtocol::StFailed )
qDebug( "Couldn't read '%s'! Following error occurred: %s",
op.toString().latin1(), operation->protocolDetail().latin1() );
else
qDebug( "Finished reading '%s'!", op.toString().latin1() );
}
}
mensaje del error) usted tambin puede poner este mensaje al puntero de la operacin (vea
QNetworkOperation::setProtocolDetail()). Tambin puede conseguir toda la informacin
pertinente (tipo, argumentos, etc.) sobre la operacin desde el puntero de QNetworkOperation.
Para detalles vea la documentacin de la clase de QNetworkOperation.
Si usted el reimplementa una funcin de la operacin, es muy importante emitir la seal
correcta en el momento correcto. En general siempre Emisin finnished() al final de una operacin
(cuando usted termine de procesar la operacin con xito o con error) con la operacin de red como
argumento. La arquitectura de red cuenta con emisin de seales correctas de finnished(). Hay
seales especificas para operaciones especificas:
1. Emisin en operationListChildren:
start() slo antes de empezar a listar a los hijos.
newChildren() cuando se leen nuevos hijos.
2. Emisin en operationMkDir:
createdDirectory() despus que el directorio se ha creado.
newChild() (o newChildren()) despus que el directorio se ha creado (desde un
nuevo directorio es un nuevo hijo).
3. Emisin en operationRemove:
removed() despus de que un hijo ha sido removido.
4. Emisin en operationRename:
itemChanged() despus de que un hijo ha sido renombrado.
5. Emisin en operationGet:
data() cada momento un nuevo dato ha de ser ledo.
dataTransferProgress() cada momento un nuevo dato ha de ser ledo para indicar
cuntos datos se han ledo hasta ahora.
6. Emisin en operationPut:
dataTransferProgress() cada momento un nuevo dato ha de ser escrito para
indicar cuntos datos se han escrito hasta ahora.
Recuerda siempre emitir la seal finnished() al finalizar.
Para ms detalles vea la documentacin de clase de QNetworkProtocol.
Aqu se muestra una lista con los argumentos de QNetworkOperation que puede conseguir
y qu usted debe poner en que la funcin:
(Para conseguir los URL en los que usted debe trabajar, use el metodo QNetworkProtocol::url()
que le devuelve un puntero al operador de URL. Usando esto puede conseguir el path, el host, el
filtro, etc.).
1. En operationListChildren:
Nada.
2. En operationMkDir:
QNetworkOperation::arg (0) contiene el nombre del directorio que debe crearse
3. En operationRemove:
QNetworkOperation::arg (0) contiene el nombre del archivo que debe removerse.
Normalmente es un nombre relativo. Pero podra ser absoluto. Use QUrl (op->arg
(0)) .fileName () para conseguir el nombre del archivo.
4. En operationRename:
QNetworkOperation::arg (0) contiene el nombre del archivo que debe
renombrarse.
QNetworkOperation::arg (1) contiene el nombre al que debe renombrarse.
5. En operationGet:
QNetworkOperation::arg (0) contiene la direccion URL del archivo que debe
recuperarse.
6. En operationPut:
QNetworkOperation::arg (0) contiene la direccion URL del archivo en el que los
datos deben guardarse.
QNetworkOperation::rawArg (1) contiene los datos que deben guardarse en
QNetworkOperation::arg (0)
En resumen: Si reimplementa una funcin operacional, debe emitir algunos seal especial y
al final siempre debe emitir una seal finnished(), sin tener en cuenta xito o fracaso. Tambin debe
cambiar el estado del QNetworkOperation durante el proceso. Tambin puede obtener y poner
argumentos de QNetworkOperation durante el progreso de la operacin.
Puede ocurrir que el protocolo de red implementado requiera un subconjunto de estas
operaciones. En tal caso, reimplemente las operaciones que son soportadas por el protocolo.
Adicionalmente debe especificar qu operaciones se van ha soportar. Esto es logrado por la
reimplementacin.
int QNetworkProtocol::supportedOperations() const;
En la implementacin de este mtodo retorna un valor int por el que es construido por ORing juntos con los valores correctos (operaciones soportadas) del siguiente enumerado (de
QNetworkProtocol):
1.
2.
3.
4.
5.
6.
OpListChildren
OpMkDir
OpRemove
OpRename
OpGet
OpPut
Por ejemplo, si los soportes protocolares listan a los hijos y los renombra, la
implementacin de supportedOperations() debe hacer esto:
Significado
QNetworkProtocol::NoError
No ocurri error.
QNetworkProtocol::ErrValid
QNetworkProtocol::ErrParse
QNetworkProtocol::ErrLoginIncorrect
QNetworkProtocol::ErrHostNotFound
QNetworkProtocol::ErrListChildren
QNetworkProtocol::ErrMkDir
QNetworkProtocol::ErrRemove
QNetworkProtocol::ErrRename
QNetworkProtocol::ErrGet
QNetworkProtocol::ErrPut
QNetworkProtocol::ErrFileNotExisting
Nota sobre como usar Mesa en X11. Las versiones de Mesa anteriores a 3.1 usan el nombre
"MesaGL" y "MesaGLU" para las librerias, en lugar de "GL" y "GLU". Si usted quiere usar una
versin de Mesa previa a 3.1, debe cambiar el Makefiles para usar stas librerias. La manera ms
fcil de hacer esto es editar las lineas en el archivo del config que est usando
SYSCONF_LIBS_OPENGL, y cambiarlo por " -lGL -lGLU" a" -lMesaGL -lMesaGLU"; luego
"configure" de nuevo.
Las Clases QGL
Los clases OpenGL soportadas en Qt son:
1. QGLWidget: Un fcil uso del widget de Qt para renderizado de escenas OpenGL.
2. QGLContext: Encapsula un contexto renderizado OpenGL.
3. QGLFormat: Especifica el formato mostrado de un contexto renderizado.
4. QGLColormap: maneja colormaps indexados en modo GL-indexado.
Muchas aplicaciones slo necesitan la clase QGLWidget de alto nivel. Las otras clases de
QGL proporcionan rasgos avanzados. Usuarios de X11 podra gustarles leer las notas en overlays.
Tambin vea los ejemplos de OpenGL.
La documentacin de QGL asume que est familiarizado con programacin OpenGL. Si es
nuevo, un punto de arranque es http://www.opengl.org/.
* OpenGL es una marca de fbrica de Silicon Graphics, Inc. en los Estados Unidos y otros pases.
Modulo SQL
Este mdulo es parte de la edicion Qt Enterprise. Y provee las siguientes clases:
QSql
QSqlDriverPlugin
QSqlFieldInfo
QSqlCursor
QSqlEditorFactory QSqlForm
QSqlQuery
QSqlRecord
QSqlDatabase QSqlError
QSqlIndex
QSqlDriver
QSqlPropertyMap QSqlResult
QSqlField
Introduccin
Arquitectura SQL
SQL Driver Plugins
Conectando una Base de datos
Conectando una Base de datos Simple
Conectando una Base de datos Mltiple
Ejecutando Comandos SQL Usando QSqlQuery
Transacciones
Exploracion Bsica
Manipulacin Bsica de los Datos
Navigando el Conjunto de Resultados
Usando QSqlCursor
Retrieving los Archivos
Ordenando y Filtrando Archivos
Extrayendo Datos
Manipulando registros
Insertando registros
Actualizando registros
QSqlRecordInfo
Eliminando registros
Widgets Data-Aware
Tablas Data-Aware
Creando formularios Data-Aware
Mostrando un Registro
Mostrando un Registro en un formulario de Datos
Revisando un Registro
Editor Widgets
Editor Widgets para Tablas
Subclases QSqlCursor
Ejemplo de Tablas
Introduccin
Las clases de SQL de Qt le proporcionan integracin a las bases de datos para aplicaciones
de Qt.
Se asume que el lector tiene un conocimiento bsico de SQL. Debe poder entender ordenes
simples como SELECT, INSERT, UPDATE y DELETE. Aunque la clase de QSqlCursor
proporciona una interface de exploracion y edicion de la base de datos, no requiere un conocimiento
de SQL, se recomienda la comprensin de SQL.
Aunque esta apreciacin global del mdulo presenta las clases de un punto de vista
completamente programtico el manual Qt-Designer "Creando Aplicaciones con Bases de datos" el
captulo toma un acercamiento de alto nivel que demuestra cmo preparar relaciones de detalle
maestras entre widgets, manejando claves maestras externas.
Todos los ejemplos en este documento usan las tablas definidas en la seccin de Tablas de
Ejemplo.
Arquitectura SQL
Las clases SQL son divididas en tres capas:
Capa de Interface de usuario. Estas clases proporcionan widgets Data-Aware que puede
conectarse a tablas o consultas de la base de datos (usando QSqlCursor como fuente de los datos).
los usuarios finales pueden actuar directamente con estos widgets explorando o editando datos. QtDesigner se integra totalmente con las clases de SQL y puede usarse para crear formularios DataAware. Los widgets Data-Aware tambin pueden programarse directamente con su propio cdigo de
C++. Las clases que soporta esta capa incluyen QSqlEditorFactory, QSqlForm,
QSqlPropertyMap, QDataTable, QDataBrowser y QDataView.
Capa SQL API. Estas clases proporcionan acceso a los base de datos. Hace conexiones
usando la clase QSqlDatabase. La interaccin de la base de datos es lograda usando QSqlQuery y
ejecutando directamente ordenes SQL o usando QSqlCursor con ordenes SQL automticamente.
Adems de QSqlDatabase, QSqlCursor y QSqlQuery, la capa SQL API es soportada por
QSqlError, QSqlField, QSqlFieldInfo, QSqlIndex, QSqlRecord y QSqlRecordInfo.
Driver Layer. Esto comprende tres clases, QSqlResult, QSqlDriver y
QSqlDriverFactoryInterface. Esta capa proporciona el puente de bajo nivel entre la base de datos
y las clases de SQL. Esta capa se documenta por separado. Para ver ms informacin lea Qt SQL
driver plugin.
SQL Driver Plugins
El mdulo de SQL de Qt puede cargar los nuevos driver dinmicamente a runtime usando
los Plugins.
La documentacin de driver SQL describe cmo construir plugins para los sistemas de
manejo de base de datos especficos.
Una vez un plugin se construye, Qt lo cargar automticamente, y el driver estar a
disponible para ser usado por QSqlDatabase (vea QSqlDatabase::drivers() para ms
informacin).
Conectndose a Bases de Datos
Por lo menos una conexin a la base de datos debe crearse y debe abrirse antes de que los
QSqlQuery o clases de QSqlCursor puedan usarse.
Si la aplicacin slo necesita una sola conexin a la base de datos, la clase QSqlDatabase
puede crear una conexin que se usa por defecto para todas las operaciones SQL. Si se requieren
mltiples conexiones a la base de datos que stos pueden hacerse fcilmente.
QSqlDatabase requiere el archivo cabecera qsqldatabase.h.
Conectando una simple Base de Datos
Haciendo una conexin a la base de datos en tres pasos simples: activar el driver, preparar
la informacin de conexin, y abrir la conexin.
#include <qapplication.h>
#include <qsqldatabase.h>
#include "../connection.h"
int main( int argc, char *argv[] ){
QApplication app( argc, argv, FALSE );
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( DB_SALES_DRIVER );
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );
if ( defaultDB->open() ) {
// Database successfully opened; we can now issue SQL commands.
}
return 0;
}
DB_SALES_DRIVER
DB_SALES_DBNAME
DB_SALES_USER
DB_SALES_PASSWD
DB_SALES_HOST
DB_ORDERS_DRIVER
DB_ORDERS_DBNAME
DB_ORDERS_USER
DB_ORDERS_PASSWD
DB_ORDERS_HOST
"QPSQL7"
"sales"
"salesperson"
"salesperson"
"database.domain.no"
"QOCI8"
"orders"
"orderperson"
"orderperson"
"database.domain.no"
bool createConnections();
constantes
tambin
declaramos
la
funcion
#include <qsqldatabase.h>
#include "connection.h"
bool createConnections(){
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( DB_SALES_DRIVER );
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );
if ( ! defaultDB->open() ) {
qWarning("Fallo al abrir database:"+defaultDB->lastError().driverText()
);
qWarning( defaultDB->lastError().databaseText() );
return FALSE;
}
QSqlDatabase *oracle = QSqlDatabase::addDatabase( DB_ORDERS_DRIVER,
"ORACLE" );
oracle->setDatabaseName( DB_ORDERS_DBNAME );
oracle->setUserName( DB_ORDERS_USER );
oracle->setPassword( DB_ORDERS_PASSWD );
oracle->setHostName( DB_ORDERS_HOST );
if ( ! oracle->open() ) {
qWarning("Fallo al abrir ordenes database:"+oracle->
lastError().driverText());
qWarning( oracle->lastError().databaseText() );
return FALSE;
}
return TRUE;
}
#include "../connection.h"
int main( int argc, char *argv[] ){
QApplication app( argc, argv, FALSE );
if ( createConnections() ) {
// Databases successfully opened; get pointers to them:
QSqlDatabase *oracledb = QSqlDatabase::database( "ORACLE" );
// Now we can now issue SQL commands to the oracle connection
// or to the default connection
}
return 0;
}
<qapplication.h>
<qsqldatabase.h>
<qsqlquery.h>
"../connection.h"
// database
QSqlQuery target;
QSqlQuery query( "SELECT id, name FROM people;", oracledb );
if ( query.isActive() ) {
while ( query.next() ) {
target.exec( "INSERT INTO people ( id, name ) VALUES ( " +
query.value(0).toString() +", '" + query.value(1).toString() +
"' );" );
}
}
}
return 0;
El cdigo anterior lleva la cuenta de cuntos archivos se insertan con xito. Si isActive () es
FALSO, ej. numRowsAffected() retorna -1 y el nmero de filas no puede determinarse.
Manipulacin Bsica de los Datos
int main( int argc, char *argv[] )
{
QApplication app( argc, argv, FALSE );
int rows = 0;
if ( createConnections() ) {
QSqlQuery query( "INSERT INTO staff ( id, forename, surname,
salary ) " "VALUES ( 1155, 'Ginger', 'Davis', 50000 );" );
if ( query.isActive() ) rows += query.numRowsAffected() ;
query.exec( "UPDATE staff SET salary=60000 WHERE id=1155;" );
if ( query.isActive() ) rows += query.numRowsAffected() ;
query.exec( "DELETE FROM staff WHERE id=1155;" );
if ( query.isActive() ) rows += query.numRowsAffected() ;
}
return ( rows == 3 ) ? 0 : 1;
}
El ejemplo muestra las ordenes SQL DML (data manipulation language). Dado que no se
especifico una base de datos en el constructor QSqlQuery usa la base de datos predefinida. Objetos
QSqlQuery tambin pueden usarse para ejecutar rdenes SQL DDL (data definition language)
como CREATE TABLE y CREATE INDEX.
Actualizando Registros
QSqlCursor cur( "prices" );
cur.select( "id=202" );
if ( cur.next() ) {
QSqlRecord *buffer = cur.primeUpdate();
double price = buffer->value( "price" ).toDouble();
double newprice = price * 1.05;
buffer->setValue( "price", newprice );
cur.update();
}
Eliminando Registros
QSqlCursor cur( "prices" );
cur.select( "id=999" );
if ( cur.next() ) {
cur.primeDelete();
cur.del();
}
Widgets Data-Aware
Tablas Data-Aware
#include
#include
#include
#include
#include
<qapplication.h>
<qsqldatabase.h>
<qsqlcursor.h>
<qdatatable.h>
"../connection.h"
Subclases QSqlCursor
#include
#include
#include
#include
#include
<qapplication.h>
<qsqldatabase.h>
<qsqlcursor.h>
<qdatatable.h>
"../connection.h"
Ejemplos de Tablas
El ejemplo de Tablas puede recrearse SQL estandar. Puede necesitar modificar el SQL para
hacerlo compatible con una base de datos en particular.
create table people (id integer primary key, name char(40))
create table staff (id integer primary key, forename char(40),
surname char(40),salary float, statusid integer)
create table status (id integer primary key, name char(30))
Modulo Table
Este mdulo es parte de la edicion Qt Enterprise.
El mdulo de Tablas proporciona un flexible y editable tabla para widget, QTable. Para
muchas aplicaciones puede usarse QTables, proporcionando un gris de celdas del editable. QTable
tambin puede ser subclassed a manera de proporcionar tablas ms grandes, ej. un milln x un
milln de celdas,
Vea la documentacin de la clase apropiada para detalles y refirase a los ejemplos de Tabla
de Qt.
Modulo Workspace
El mdulo workspace proporciona un ambiente de trabajo que puede contener ventanas de
documentos decoradas para las Interfaces de Documento Mltiples (MDI).
Se implementa en una sola clase QWorkspace.
Por favor vea la documentacin de la clase para ms detalles.
Modulo XML
Este mdulo es parte de la edicion Qt Enterprise.
El mdulo de XML proporciona un XML bien formado que usa SAX2 (Simple API for
XML) una implementacin de DOM Nivel 2 (Document Object Model).
SAX es una interface estandar de eventos basados en XML. La interface de Qt sigue el
diseo de la implementacion de Java de SAX2. Su esquema fue adaptado para encajar en las
convecione de Qt. Pueden encontrarse ms detalles de SAX2 en http://www.megginson.com/SAX/.
El soporte para filtros SAX2 estn bajo desarrollo. Qt no incluye compatibilidad co SAX1
presente en la interface de Java.
Para una introduccin a las clases SAX2 de Qt vea "La clase Qt SAX2".
DOM Level 2 es una W3C Recomendad para interfaces de XML que constituye un mapa
al documento de XML a la estructura de rbol. Pueden encontrarse los detalles y la especificacin
de DOM Level 2 en http://www.w3.org/DOM/. Ms informacin sobre el DOM en la clase de Qt
DOM.
Qt proporciona las siguientes clases XML:
Class
Short description
QDomAttr
QDomCDATASection
QDomCharacterData
QDomComment
QDomDocument
QDomDocumentFragment
QDomDocumentType
QDomElement
QDomEntity
QDomEntityReference
QDomImplementation
QDomNamedNodeMap
QDomNode
QDomNodeList
QDomNotation
QDomText
QXmlAttributes
Atributos XML
QXmlContentHandler
QXmlDeclHandler
QXmlDefaultHandler
QXmlDTDHandler
QXmlEntityResolver
QXmlErrorHandler
QXmlInputSource
QXmlLexicalHandler
QXmlLocator
QXmlNamespaceSupport
QXmlParseException
QXmlReader
QXmlSimpleReader
QAxContainer
El mdulo QAxContainer es una libreria que implementa una subclase de QWidget,
QAxWidget que acta como un contenedor para los controles ActiveX, si la libreria se construye
contra una libreria Qt compartida que integrada como un plugin widget en Qt-Designer. Este
mdulo proporciona las clases QAxBase, QAxObject y QAxWidget.
Informacin adicional
Ejemplos.
QAxContainer FAQ.
QAxServer
El mdulo QAxServer es una libreria esttica que implementa funcionalidad al servidor
ActiveX en proceso y en ejecucion. Este mdulo proporciona las clases QAxAggregated,
QAxBindable y QAxFactory.
Informacin adicional
Ejemplos.
QAxServer FAQ.
Informacin
El modulo Extensin Motif consiste en las siguientes clases:
QMotif
QMotifWidget
QMotifDialog
QXtWidget - La integracin widget Xt/Motif para extensiones anteriores de Xt/Motif.
Esta clase no es soportada y es provista slo para proyectos que manejan nuevas
extensiones Motif.
How-to
1. Asegurese que est usando X11R6 y Motif 2.x.
2. Asegurese los programas son compilables por C++, o por lo menos que ste sea el caso,
que puedan ser migradas.
Vea tambien Motif Examples.
Problemas Comunes
Las cabeceras X11 definen algunas constantes que dan conflictos con las cabeceras de Qt. La
solucin es incluir primero todas las cabeceras de Qt, seguido por las cabeceras de esta extensin, y
todas las cabeceras Xt/Motif y X11. Por ejemplo
// Qt headers first
#include <qapplication.h>
#include <qpushbutton.h>
#include <qsocket.h>
...
vistos va / /... URL, entonces los browser usarn la extensin del filename para decidir
el tipo del archivo (y del plugin para cargar) - el usuario puede necesitar poner la
extensin del filename en las ayudas o seccin de Aplicaciones de las preferencias del
browser.
Construyendo bajo X11
Los Makefiles en los ejemplos son apropiados para UNIX/X11.
El usuario debe instalar el Objeto Compartido resultante en el directorio de Plugins del
browser.
Construyendo bajo Windows
Para trabajar los plugins de Netscape, Qt necesita estar en el directorio del DLL o ser
compilado dentro del plugin como una libreria esttica.
Los plugins deben nombrarse npname.dll, o los browser los ignorarn.
El enlace debe incluir:
o /def:name.def
o /dll
o un archivo de recurso compilado definiendo el tipo file/MIME aceptado por el
plugin.
El usuario debe instalar el DLL resultante en el directorio de Plugins del browser.
Errores conocidos y Limitaciones
El codigo unido al Plugin LiveConnect basado en Qt tiene varias limitaciones y errores,
pero es suficientemente estable para muchas aplicaciones en produccin.
La entrada del teclado slo trabaja en ventanas del seconday (ej. dilogos creados por el
plugin).
No espere una modalidad entre el plugin y el browser a trabajar.
Netscape 4.78 en Unix/X11 tiende a terminar con un error en los buses.
El comportamiento del resize opaco es una conducta errtica del browser.
Caractersticas:
Para crear una interfaz con QT Designer basta con seleccionar el men File -> New. y all
se elige un fichero de QT Designer (*.ui)
Disponemos de una paleta de widgets muy completa, que incluyen los widgets ms
comunes de las liberas QT. Si adems hemos instalado las libreras para el desarrollo
de aplicaciones KDE, tendremos widwets adicionales.
A medida que guardamos los cambios de la interfaz, si editamos el fichero .ui vemos que va
cambiando el contenido. La descripcin de la interfaz se guarda en ese fichero en formato
xml.
Para hacer que nuestra ventana sea la ventana principal de la aplicacin basta con hacer que
el widget que nos gener como ventana principal herede del nuevo que hemos creado con
el QT Designer.
Ejemplo de Botones
Containers: Se pueden definir como contenedores que se pueden etiquetar con un titulo y
pueden contener texto, imgenes incluso otros objetos tales como botones. Igualmente
existen varios tipos Groupbox, Buttongroup, Frame, etc.
Ejemplo de containers
Inputs: Este apartado incluye LineEdit (lneas de edicin) pueden servir para recoger
datos que se introducen por teclado, MultiLineEdit (similar), combobox (listas
desplegables) y otros como slider, spinbox o dial.
Ejemplo de Inputs
Ejemplo de Displays
Views: Son objetos que pueden albergar iconos, tambin en este apartado se incluyen las
tablas.
Ejemplo de views
Todos estos se encuentran en el men Tools aunque tambin se puede encontrarlos en las
barras de herramientas con sus respectivos iconos.
Se pueden realizar seales, conocidas como Slots y Signal:
Slots y Signal.- Los slots y signals (seales) son un mecanismo de comunicacin entre
objetos, esta es la principal caracterstica de Qt y es el rasgo que hace distintas las libreras
Qt del resto de herramientas para la elaboracin de GUI, es un mecanismo de
comunicacin seguro, flexible y totalmente orientado a objetos y por supuesto
implementado en C++.
En la programacin con GUI se busca que los cambios producidos en un objeto
sean comunicados a otros objetos, por ejemplo cuando hacemos click en un botn para que
se cierre una ventana, lo que se hace es posibilitar la comunicacin entre los dos objetos.
Otras herramientas de diseo de GUI llevan a cabo la comunicacin entre objetos usando
los llamados callbacks. Un callback es un puntero a una funcin, con este mecanismo si se
quiere procesar una determinada funcin cada vez que ocurre un evento en un objeto, lo que
se hace es pasar un puntero a otra funcin (el callback) a la funcin deseada y ser esta la
que se encargue de llamar al callback en el momento apropiado. Este tipo de comunicacin
tiene el inconveniente de no ser totalmente seguro puesto que no se sabe si se llamar al
callback con los argumentos apropiados y adems la funcin que llama al callback debe
saber exactamente a que callback llamar, adems es un sistema inflexible y no esta
orientado a objetos.
Se puede crear los archivos *.h y los *.cpp:
La aplicacin uic permite implementar la clase del modelo realizado con Qt Designer a
partir del archivo .ui, es decir obtener los archivos .cpp y .h para ello utiliza la siguiente
instruccin en la consola.
o Para obtener el archivo de cabecera (.h):
uic -o <ejemploqt.h> <ejemploqt.ui>
o
Con esto ya estn los archivos implementados, es decir la clase de la ventana creada ya
esta definida (el nombre que habamos elegido es Wizard), pero aun falta algo. La
herramienta moc (meta object compiler) sirve para obtener archivos de extensin .cpp
que se encargan de implementar el mecanismo de slots/signals.
moc -o <moc_ejemploqt.cpp> <ejemploqt.h>
En este paso del wizard definimos el aspecto de nuestro ToolBar. En este punto puedes
ensayar a darle el aspecto que desees (pero no es bueno abusar).
Acerca del siguiente paso del Wizard se podrian decir muchas cosas, solo presionar
"Finish".
Antes de estudiar el contenido del archivo .pro debemos salvar nuestro trabajo (de hecho
mediante esta operacion se crea dicho archivo). (File->Save all):
El Archivo .pro
Revisemos lo que tenemos en el directorio del proyecto:
El Archivo main.cpp
Al igual que sucede con cualquier aplicacin desarrollada en C++, necesitamos una funcion
main() para poder generar el respectivo ejecutable. Asi que antes de compilar cualquier cosa,
generemos dicha funcion (File->New):
Salvemos todo de nuevo (File->Save all). Podemos ver la aparicion del nuevo archivo
main.cpp
Vamos a editar el codigo relativo a la accion File->Close de nuestra aplicacin. Para ello,
ubiquemos la seccion del archivo correspondiente al SLOT fileExit() y editemoslo mediante
el codigo this->close();. Observacion: quizas puedas observar cuando termine de escribir > como se despliega un menu contextual. Este menu posee todas las funciones disponibles para el
objeto this (QMainWindow), incluidas las heredadas mediante el menanismo de inheritance.
Y agreguemoslo a la forma, cliqueando sobre ella, la region donde deseamos que quede
colocado el objeto. Editemos ahora algunas de las propiedades del objeto (como su titulo-nombre
que va a aparecer en el contenedor) en el tab de Properties disponible a la derecha del
designer:
Hagamos lo mismo con los botones: primero agreguemos unos cuantos botones
(seleccionadolos a partir de la seccion Buttons del Common Widgets tab.
Segundo: agregandolos al contenedor recien creado y editando el nombre con el que van a
aparecer:
Aparece el siguiente dialogo (observese que este dialogo es el mismo que se emplea para
crear las descripciones). Seleccionemos el archivo correspondiente y abramoslo:
void
void
void
void
void
void
void
zoomIn();
zoomOut();
mirror();
moveL();
moveR();
moveU();
moveD();
protected:
void contentsMousePressEvent(QMouseEvent*);
void contentsMouseMoveEvent(QMouseEvent*);
signals:
void status(const QString &);
private:
int imageRTTI;
QCanvasItem* moving;
QPoint moving_start;
QString butterfly_fn;
QString logo_fn;
QCanvas * myCanvas;
QBrush *tb;
QPen *tp;
uint mainCount;
QImage *butterflyimg;
QImage *logoimg;
};
Ahora, agreguemos el widget a la forma. Ahora si que lo podemos hacer de la misma forma
que lo haciamos con el contenedor y sus botones en el capitulo pasado. Cliqueemos primero
MyCanvasView y luego en el sitio en la forma donde deseamos que quede:
El resultado:
Ahora debemos cliquear con el raton los dos objetos (uno despues de otro): primero el
objeto que emite el signal y segundo el objeto que la recibe (y ejecuta entonces un metodo
denominado slot). Observa como se iluminan los objetos seleccionados:
Una vez seleccionados ambos objetos (tanto el emisor como el receptor), entonces aparece
el siguiente dialogo:
Seleccionemos entonces el signal y el slot que necesitemos (observa que para que un slot
este disponible, el tipo de datos del slot debe coincidir con el del signal):
Nota: Es posible que los archivos se hayan abierto para edicion. Como lo que cuenta era
incluirlos en el proyecto (y no editarlos), podemos cerrar las ventanas de edicion correspondientes.
Ahora salvamos todo de nuevo (del modo usual File->Save all) y demos ahora un vistazo al archivo
.pro:
Observa como aparecen las clases agregadas en la seccion de SOURCES. Esto quiere decir
que estamos listos para compilar del modo habitual (mediante consola: qmake seguido de make).
Finalmente, podemos ejecutar nuestra singular aplicacin:
Acciones
Una accion es un evento de usuario que puede ser generado a partir de diferentes
instancias. Por ejemplo, considera la accion estndar save, la accion puede ser generada por el
usuario de varias maneras: desde el menu file o desde el correspondiente icono en el toolbar.
Pues nosotros vamos a: 1. Agregar un menu nuevo y un nuevo item en el (automaticamente se va a
crear la accion correspondiente), 2. Asociar la accion a un nuevo slot de la forma, encargado de
ejecutar el dialogo estndar de edicion de colores de Qt (observa que esto es mas general que
asociar por ejemplo el item del menu al slot). Es mucho mas facil de lo que parece. Asi que primero
creemos el nuevo menu y el nuevo item, del modo indicado:
Para conectar la accion con el slot recien implementado, cliqueamos con el boton derecho
la accion y ejecutamos el item indicado:
El Resultado Final
Despues de salvar todo, volver a compilar y ejecutar, podemos ejecutar la aplicacin y el
nuevo dialogo:
A
QAccel
The QAccel class handles keyboard accelerator and shortcut keys.
QAccessible
The QAccessible class provides enums and static functions relating to accessibility.
QAccessibleInterface
The QAccessibleInterface class defines an interface that exposes information about
accessible objects.
QAccessibleObject
The QAccessibleObject class implements parts of the QAccessibleInterface for QObjects.
QAction
The QAction class provides an abstract user interface action that can appear both in menus
and tool bars.
QActionGroup
The QActionGroup class groups actions together.
QApplication
The QApplication class manages the GUI application's control flow and main settings.
QAquaStyle
The QAquaStyle class implements the Aqua 'Look and Feel'.
QAsciiCache
The QAsciiCache class is a template class that provides a cache based on char* keys.
QAsciiCacheIterator
The QAsciiCacheIterator class provides an iterator for QAsciiCache collections.
QAsciiDict
The QAsciiDict class is a template class that provides a dictionary based on char* keys.
QAsciiDictIterator
The QAsciiDictIterator class provides an iterator for QAsciiDict collections.
QAssistantClient
The QAssistantClient class provides a means of using Qt Assistant as an application's help
tool.
QAxAggregated
The QAxAggregated class is an abstract base class for implementations of additional COM
interfaces.
QCanvasRectangle
The QCanvasRectangle class provides a rectangle on a QCanvas.
QCanvasSpline
The QCanvasSpline class provides multi-bezier splines on a QCanvas.
QCanvasSprite
The QCanvasSprite class provides an animated canvas item on a QCanvas.
QCanvasText
The QCanvasText class provides a text object on a QCanvas.
QCanvasView
The QCanvasView class provides an on-screen view of a QCanvas.
QCDEStyle
The QCDEStyle class provides a CDE look and feel.
QChar
The QChar class provides a lightweight Unicode character.
QCharRef
The QCharRef class is a helper class for QString.
QCheckBox
The QCheckBox widget provides a checkbox with a text label.
QCheckListItem
The QCheckListItem class provides checkable list view items.
QCheckTableItem
The QCheckTableItem class provides checkboxes in QTables.
QChildEvent
The QChildEvent class contains event parameters for child object events.
QClipboard
The QClipboard class provides access to the window system clipboard.
QCloseEvent
The QCloseEvent class contains parameters that describe a close event.
QColor
The QColor class provides colors based on RGB or HSV values.
QColorDialog
The QColorDialog class provides a dialog widget for specifying colors.
QColorDrag
The QColorDrag class provides a drag and drop object for transferring colors.
QColorGroup
The QColorGroup class contains a group of widget colors.
QComboBox
The QComboBox widget is a combined button and popup list.
QComboTableItem Class Referente
The QComboTableItem class provides a means of using comboboxes in QTables.
QCommonStyle
The QCommonStyle class encapsulates the common Look and Feel of a GUI.
QConstString
The QConstString class provides string objects using constant Unicode data.
QContextMenuEvent
The QContextMenuEvent class contains parameters that describe a context menu event.
QCopChannel
The QCopChannel class provides communication capabilities between several clients.
QCString
The QCString class provides an abstraction of the classic C zero-terminated char array
(char *).
QCursor
The QCursor class provides a mouse cursor with an arbitrary shape.
QCustomEvent
The QCustomEvent class provides support for custom events.
QCustomMenuItem
The QCustomMenuItem class is an abstract base class for custom menu items in popup
menus.
D
QDataBrowser
The QDataBrowser class provides data manipulation and navigation for data entry forms.
QDataStream
The QDataStream class provides serialization of binary data to a QIODevice.
QDataTable
The QDataTable class provides a flexible SQL table widget that supports browsing and
editing.
QDataView
The QDataView class provides read-only SQL forms.
QDate
The QDate class provides date functions.
QDateEdit
The QDateEdit class provides a date editor.
QDateTime
The QDateTime class provides date and time functions.
QDateTimeEdit
The QDateTimeEdit class combines a QDateEdit and QTimeEdit widget into a single
widget for editing datetimes.
QDeepCopy
The QDeepCopy class is a template class which ensures that implicitly shared and
explicitly shared classes reference unique data.
QDesktopWidget
The QDesktopWidget class provides access to screen information on multi-head systems.
QDial
The QDial class provides a rounded range control (like a speedometer or potentiometer).
QDialog
The QDialog class is the base class of dialog windows.
QDict
The QDict class is a template class that provides a dictionary based on QString keys.
QDictIterator
The QDictIterator class provides an iterator for QDict collections.
QDir
The QDir class provides access to directory structures and their contents in a platformindependent way.
QDirectPainter
The QDirectPainter class provides direct access to the video hardware.
QDns
The QDns class provides asynchronous DNS lookups.
QDockArea
The QDockArea class manages and lays out QDockWindows.
QDockWindow
The QDockWindow class provides a widget which can be docked inside a QDockArea or
floated as a top level window on the desktop.
QDomAttr
The QDomAttr class represents one attribute of a QDomElement.
QDomCDATASection
The QDomCDATASection class represents an XML CDATA section.
QDomCharacterData
The QDomCharacterData class represents a generic string in the DOM.
QDomComment
The QDomComment class represents an XML comment.
QDomDocument
The QDomDocument class represents an XML document.
QDomDocumentFragment
The QDomDocumentFragment class is a tree of QDomNodes which is not usually a
complete QDomDocument.
QDomDocumentType
The QDomDocumentType class is the representation of the DTD in the document tree.
QDomElement
The QDomElement class represents one element in the DOM tree.
QDomEntity
The QDomEntity class represents an XML entity.
QDomEntityReference
The QDomEntityReference class represents an XML entity reference.
QDomImplementation
The QDomImplementation class provides information about the features of the DOM
implementation.
QDomNamedNodeMap
The QDomNamedNodeMap class contains a collection of nodes that can be accessed by
name.
QDomNode
The QDomNode class is the base class for all the nodes in a DOM tree.
QDomNodeList
The QDomNodeList class is a list of QDomNode objects.
QDomNotation
The QDomNotation class represents an XML notation.
QDomProcessingInstruction
The QDomProcessingInstruction class represents an XML processing instruction.
QDomText
The QDomText class represents text data in the parsed XML document.
QDoubleValidator
The QDoubleValidator class provides range checking of floating-point numbers.
QDragEnterEvent
The QDragEnterEvent class provides an event which is sent to the widget when a drag and
drop first drags onto the widget.
QDragLeaveEvent
The QDragLeaveEvent class provides an event which is sent to the widget when a drag and
drop leaves the widget.
QDragMoveEvent
The QDragMoveEvent class provides an event which is sent while a drag and drop is in
progress.
QDragObject
The QDragObject class encapsulates MIME-based data transfer.
QDropEvent
The QDropEvent class provides an event which is sent when a drag and drop is completed.
E
QEditorFactory
The QEditorFactory class is used to create editor widgets for QVariant data types.
QErrorMessage
The QErrorMessage class provides an error message display dialog.
QEucJpCodec
The QEucJpCodec class provides conversion to and from EUC-JP character sets.
QEucKrCodec
The QEucKrCodec class provides conversion to and from EUC-KR character sets.
QEvent
The QEvent class is the base class of all event classes. Event objects contain event
parameters.
QEventLoop
The QEventLoop class manages the event queue.
F
QFile
The QFile class is an I/O device that operates on files.
QFileDialog
The QFileDialog class provides dialogs that allow users to select files or directories.
QFileIconProvider
The QFileIconProvider class provides icons for QFileDialog to use.
QFileInfo
The QFileInfo class provides system-independent file information.
QFilePreview
The QFilePreview class provides file previewing in QFileDialog.
QFocusData
The QFocusData class maintains the list of widgets in the focus chain.
QFocusEvent
The QFocusEvent class contains event parameters for widget focus events.
QFont
The QFont class specifies a font used for drawing text.
QFontDatabase
The QFontDatabase class provides information about the fonts available in the underlying
window system.
QFontDialog
The QFontDialog class provides a dialog widget for selecting a font.
QFontInfo
The QFontInfo class provides general information about fonts.
QFontManager
The QFontManager class implements font management in Qt/Embedded.
QFontMetrics
The QFontMetrics class provides font metrics information.
QFrame
The QFrame class is the base class of widgets that can have a frame.
QFtp
The QFtp class provides an implementation of the FTP protocol.
G
QGb18030Codec
The QGb18030Codec class provides conversion to and from the Chinese
GB18030/GBK/GB2312 encoding.
QGb2312Codec
The QGb2312Codec class provides conversion to and from the Chinese GB2312 encoding.
QGbkCodec
The QGbkCodec class provides conversion to and from the Chinese GBK encoding.
QGfxDriverFactory
The QGfxDriverFactory class creates QScreen objects for Qt/Embedded.
QGfxDriverPlugin
The QGfxDriverPlugin class provides an abstract base for Qt/Embedded graphics driver
plugins.
QGL
The QGL class is a namespace for miscellaneous identifiers in the Qt OpenGL module.
QGLayoutIterator
The QGLayoutIterator class is an abstract base class of internal layout iterators.
QGLColormap
The QGLColormap class is used for installing custom colormaps into QGLWidgets.
QGLColormap
The QGLColormap class is used for installing custom colormaps into QGLWidgets.
QGLFormat
The QGLFormat class specifies the display format of an OpenGL rendering context.
QGLWidget
The QGLWidget class is a widget for rendering OpenGL graphics.
QGrid
The QGrid widget provides simple geometry management of its children.
QGridLayout
The QGridLayout class lays out widgets in a grid.
QGridView
The QGridView class provides an abstract base for fixed-size grids.
QGroupBox
The QGroupBox widget provides a group box frame with a title.
QGuardedPtr
The QGuardedPtr class is a template class that provides guarded pointers to QObjects.
H
QHBox
The QHBox widget provides horizontal geometry management for its child widgets.
QHBoxLayout
The QHBoxLayout class lines up widgets horizontally.
QHButtonGroup
The QHButtonGroup widget organizes QButton widgets in a group with one horizontal
row.
QHeader
The QHeader class provides a header row or column, e.g. for tables and listviews.
QHebrewCodec
The QHebrewCodec class provides conversion to and from visually ordered Hebrew.
QHGroupBox
The QHGroupBox widget organizes widgets in a group with one horizontal row.
QHideEvent
The QHideEvent class provides an event which is sent after a widget is hidden.
QHostAddress
The QHostAddress class provides an IP address.
QHttp
The QHttp class provides an implementation of the HTTP protocol.
QHttpHeader
The QHttpHeader class contains header information for HTTP.
QHttpRequestHeader
The QHttpRequestHeader class contains request header information for HTTP.
QHttpResponseHeader
The QHttpResponseHeader class contains response header information for HTTP.
I
QIconDrag
The QIconDrag class supports drag and drop operations within a QIconView.
QIconDragItem
The QIconDragItem class encapsulates a drag item.
QIconFactory
The QIconFactory class is used to create pixmaps for a QIconSet.
QIconSet
The QIconSet class provides a set of icons with different styles and sizes.
QIconView
The QIconView class provides an area with movable labelled icons.
QIconViewItem
The QIconViewItem class provides a single item in a QIconView.
QImage
The QImage class provides a hardware-independent pixmap representation with direct
access to the pixel data.
QImageConsumer
The QImageConsumer class is an abstraction used by QImageDecoder.
QImageDecoder
The QImageDecoder class is an incremental image decoder for all supported image
formats.
QImageDrag
The QImageDrag class provides a drag and drop object for transferring images.
QImageFormat
The QImageFormat class is an incremental image decoder for a specific image format.
QImageFormatPlugin
The QImageFormatPlugin class provides an abstract base for custom image format plugins.
QImageFormatType
The QImageFormatType class is a factory that makes QImageFormat objects.
QImageIO
The QImageIO class contains parameters for loading and saving images.
QIMEvent
The QIMEvent class provides parameters for input method events.
QInputDialog
The QInputDialog class provides a simple convenience dialog to get a single value from the
user.
QIntCache
The QIntCache class is a template class that provides a cache based on long keys.
QIntCacheIterator
The QIntCacheIterator class provides an iterator for QIntCache collections.
QIntDict
The QIntDict class is a template class that provides a dictionary based on long keys.
QIntDictIterator
The QIntDictIterator class provides an iterator for QIntDict collections.
QIntValidator
The QIntValidator class provides a validator which ensures that a string contains a valid
integer within a specified range.
QIODevice
The QIODevice class is the base class of I/O devices.
J
QJisCodec
The QJisCodec class provides conversion to and from JIS character sets.
K
QKbdDriverFactory
The QKbdDriverFactory class creates QWSKeyboardHandler objects for Qt/Embedded.
QKbdDriverPlugin
The QKbdDriverPlugin class provides an abstract base for Qt/Embedded keyboard driver
plugins.
QKeyEvent
The QKeyEvent class contains describes a key event.
QKeySequence
The QKeySequence class encapsulates a key sequence as used by accelerators.
L
QLabel
The QLabel widget provides a text or image display.
QLayout
The QLayout class is the base class of geometry managers.
QLayoutItem
The QLayoutItem class provides an abstract item that a QLayout manipulates.
QLayoutIterator
The QLayoutIterator class provides iterators over QLayoutItem.
QLCDNumber
The QLCDNumber widget displays a number with LCD-like digits.
QLibrary
The QLibrary class provides a wrapper for handling shared libraries.
QLineEdit
The QLineEdit widget is a one-line text editor.
QLineEdit
The QLineEdit widget is a one-line text editor.
QListBoxItem
The QListBoxItem class is the base class of all list box items.
QListBoxPixmap
The QListBoxPixmap class provides list box items with a pixmap and optional text.
QListBoxText
The QListBoxText class provides list box items that display text.
QListView
QMutexLocker
The QMutexLocker class simplifies locking and unlocking QMutexes.
N
QNetworkOperation
The QNetworkOperation class provides common operations for network protocols.
QNetworkProtocol
The QNetworkProtocol class provides a common API for network protocols.
QNPInstance
The QNPInstance class provides a QObject that is a Web-browser plugin.
QNPlugin
The QNPlugin class provides the plugin central factory.
QNPStream
The QNPStream class provides a stream of data provided to a QNPInstance by the browser.
QNPWidget
The QNPWidget class provides a QWidget that is a Web-browser plugin window.
O
QObject
The QObject class is the base class of all Qt objects.
QObjectCleanupHandler
The QObjectCleanupHandler class watches the lifetime of multiple QObjects.
QObjectList
The QObjectList class is a QPtrList of QObjects.
P
QPaintDevice
The QPaintDevice class is the base class of objects that can be painted.
QPaintDeviceMetrics
The QPaintDeviceMetrics class provides information about a paint device.
QPainter
The QPainter class does low-level painting e.g. on widgets.
QPaintEvent
The QPaintEvent class contains event parameters for paint events.
QPair
The QPair class is a value-based template class that provides a pair of elements.
QPalette
The QPalette class contains color groups for each widget state.
QPen
The QPen class defines how a QPainter should draw lines and outlines of shapes.
QPicture
The QPicture class is a paint device that records and replays QPainter commands.
QPixmap
The QPixmap class is an off-screen, pixel-based paint device.
QPixmapCache
The QPixmapCache class provides an application-global cache for pixmaps.
QPlatinumStyle
The QPlatinumStyle class provides Mac/Platinum look and feel.
QPNGImagePacker
The QPNGImagePacker class creates well-compressed PNG animations.
QPoint
The QPoint class defines a point in the plane.
QPointArray
The QPointArray class provides an array of points.
QPopupMenu
The QPopupMenu class provides a popup menu widget.
QPrinter
The QPrinter class is a paint device that paints on a printer.
QProcess
The QProcess class is used to start external programs and to communicate with them.
QProgressBar
The QProgressBar widget provides a horizontal progress bar.
QProgressDialog
The QProgressDialog class provides feedback on the progress of a slow operation.
QPtrCollection
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing
policy.
QSjisCodec
The QSjisCodec class provides conversion to and from Shift-JIS.
QSlider
The QSlider widget provides a vertical or horizontal slider.
QSocket
The QSocket class provides a buffered TCP connection.
QSocketDevice
The QSocketDevice class provides a platform-independent low-level socket API.
QSocketNotifier
The QSocketNotifier class provides support for socket callbacks.
QSound
The QSound class provides access to the platform audio facilities.
QSpacerItem
The QSpacerItem class provides blank space in a layout.
QSpinBox
The QSpinBox class provides a spin box widget (spin button).
QSplitter
The QSplitter class implements a splitter widget.
QSql
The QSql class is a namespace for Qt SQL identifiers that need to be global-like.
QSqlCursor
The QSqlCursor class provides browsing and editing of SQL tables and views.
QSqlDatabase
The QSqlDatabase class is used to create SQL database connections and provide
transaction handling.
QSqlDriver
The QSqlDriver class is an abstract base class for accessing SQL databases.
QSqlDriverPlugin
The QSqlDriverPlugin class provides an abstract base for custom QSqlDriver plugins.
QSqlEditorFactory
The QSqlEditorFactory class is used to create the editors used by QDataTable and
QSqlForm.
QSqlError
The QSqlError class provides SQL database error information.
QSqlField
The QSqlField class manipulates the fields in SQL database tables and views.
QSqlFieldInfo
The QSqlFieldInfo class stores meta data associated with a SQL field.
QSqlForm
The QSqlForm class creates and manages data entry forms tied to SQL databases.
QSqlIndex
The QSqlIndex class provides functions to manipulate and describe QSqlCursor and
QSqlDatabase indexes.
QSqlPropertyMap
The QSqlPropertyMap class is used to map widgets to SQL fields.
QSqlQuery
The QSqlQuery class provides a means of executing and manipulating SQL statements.
QSqlRecord
The QSqlRecord class encapsulates a database record, i.e. a set of database fields.
QSqlRecordInfo
The QSqlRecordInfo class encapsulates a set of database field meta data.
QSqlResult
The QSqlResult class provides an abstract interface for accessing data from SQL databases.
QStatusBar
The QStatusBar class provides a horizontal bar suitable for presenting status information.
QStoredDrag
The QStoredDrag class provides a simple stored-value drag object for arbitrary MIME data.
QStrIList
The QStrIList class provides a doubly-linked list of char* with case-insensitive comparison.
QString
The QString class provides an abstraction of Unicode text and the classic C '\0'-terminated
char array.
QStringList
The QStringList class provides a list of strings.
QStrList
The QStrList class provides a doubly-linked list of char*.
QStrListIterator
The QStrListIterator class is an iterator for the QStrList and QStrIList classes.
QStyle
The QStyle class specifies the look and feel of a GUI.
QStyleFactory
The QStyleFactory class creates QStyle objects.
QStyleOption
The QStyleOption class specifies optional parameters for QStyle functions.
QStylePlugin
The QStylePlugin class provides an abstract base for custom QStyle plugins.
QStyleSheet
The QStyleSheet class is a collection of styles for rich text rendering and a generator of
tags.
QStyleSheetItem
The QStyleSheetItem class provides an encapsulation of a set of text styles.
QSyntaxHighlighter
The QSyntaxHighlighter class is a base class for implementing QTextEdit syntax
highlighters.
T
Qt
The Qt class is a namespace for miscellaneous identifiers that need to be global-like.
QTab
The QTab class provides the structures in a QTabBar.
QTabBar
The QTabBar class provides a tab bar, e.g. for use in tabbed dialogs.
QTabDialog
The QTabDialog class provides a stack of tabbed widgets.
QTable
QTime
The QTime class provides clock time functions.
QTimeEdit
The QTimeEdit class provides a time editor.
QTimer
The QTimer class provides timer signals and single-shot timers.
QTimerEvent
The QTimerEvent class contains parameters that describe a timer event.
QToolBar
The QToolBar class provides a movable panel containing widgets such as tool buttons.
QToolButton
The QToolButton class provides a quick-access button to commands or options, usually
used inside a QToolBar.
QToolTip
The QToolTip class provides tool tips (balloon help) for any widget or rectangular part of a
widget.
QToolTipGroup
The QToolTipGroup class collects tool tips into related groups.
QTranslator
The QTranslator class provides internationalization support for text output.
QTranslatorMessage
The QTranslatorMessage class contains a translator message and its properties.
QTsciiCodec
The QTsciiCodec class provides conversion to and from the Tamil TSCII encoding.
U
QUriDrag
The QUriDrag class provides a drag object for a list of URI references.
QUrl
The QUrl class provides a URL parser and simplifies working with URLs.
QUrlInfo
The QUrlInfo class stores information about URLs.
QUrlOperator
The QUrlOperator class provides common operations on URLs.
V
QValidator
The QValidator class provides validation of input text.
QValueList
The QValueList class is a value-based template class that provides lists.
QValueListConstIterator
The QValueListConstIterator class provides a const iterator for QValueList.
QValueListIterator
The QValueListIterator class provides an iterator for QValueList.
QValueStack
The QValueStack class is a value-based template class that provides a stack.
QValueVector
The QValueVector class is a value-based template class that provides a dynamic array.
QVariant
The QVariant class acts like a union for the most common Qt data types.
QVBox
The QVBox widget provides vertical geometry management of its child widgets.
QVBoxLayout
The QVBoxLayout class lines up widgets vertically.
QVButtonGroup
The QVButtonGroup widget organizes QButton widgets in a vertical column.
QVGroupBox
The QVGroupBox widget organizes a group of widgets in a vertical column.
W
QWaitCondition
The QWaitCondition class allows waiting/waking for conditions between threads.
QWhatsThis
The QWhatsThis class provides a simple description of any widget, i.e. answering the
question "What's this?".
QWheelEvent
The QWheelEvent class contains parameters that describe a wheel event.
QWidget
The QWidget class is the base class of all user interface objects.
QWidgetFactory
The QWidgetFactory class provides for the dynamic creation of widgets from Qt
Designer .ui files.
QWidgetItem
The QWidgetItem class is a layout item that represents a widget.
QWidgetPlugin
The QWidgetPlugin class provides an abstract base for custom QWidget plugins.
QWidgetStack
The QWidgetStack class provides a stack of widgets of which only the top widget is uservisible.
QWindowsMime
The QWindowsMime class maps open-standard MIME to Window Clipboard formats.
QWindowsStyle
The QWindowsStyle class provides a Microsoft Windows-like look and feel.
QWizard
The QWizard class provides a framework for wizard dialogs.
QWMatrix
The QWMatrix class specifies 2D transformations of a coordinate system.
QWorkspace
The QWorkspace widget provides a workspace window that can contain decorated
windows, e.g. for MDI.
QWSDecoration
The QWSDecoration class allows the appearance of the Qt/Embedded Window Manager to
be customized.
QWSInputMethod
The QWSInputMethod class provides international input methods for Qt/Embedded.
QWSKeyboardHandler
The QWSKeyboardHandler class implements the keyboard driver for Qt/Embedded.
QWSMouseHandler
The QXmlNamespaceSupport class is a helper class for XML readers which want to
include namespace support.
QXmlParseException
The QXmlParseException class is used to report errors with the QXmlErrorHandler
interface.
QXmlReader
The QXmlReader class provides an interface for XML readers (i.e. parsers).
QXmlSimpleReader
The QXmlSimpleReader class provides an implementation of a simple XML reader
(parser).
QXtWidget
The QXtWidget class allows mixing of Xt/Motif and Qt widgets.