Extending Qt WebKit/es

From Qt Wiki
Jump to: navigation, search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.
English Español Català

Extendiendo Qt Webkit

El módulo QtWebKit permite a los desarrolladores ampliar y combinar características que se encuentran en Qt y WebKit. Este híbrido de C++/diseño web se está convirtiendo en popular por una variedad de razones, entre ellas el hecho de que permite a distintos equipos aprovechar la gran comunidad de desarrolladores web especializados.

Una serie de artículos en Qt Quarterly proporcionan una buena introducción a las tecnologías y los procedimientos empleados.

Construir interfaces de red

Los diseños híbridos a menudo requieren un código personalizado de Qt para manejar las interacciones de la red. Uso de un servicio Web sencillo con Qt utiliza el servicio web MathTran para que un fragmento de marcado TeX introducido en el editor de texto se vea como una imagen. El artículo de 2007 utiliza las clases que se han quedado obsoletas, pero merece la pena leerlo.

Añadir widgets Qt a interfaces de usuario web-céntricas

El artículo de David Boddie Conectarse a la web muestra cómo incluir widgets Qt en interfaces de usuario centradas en web. Comienza el uso básico de QWebView para mostrar una página Web:

 int main(int argc, char *argv[])
 {
 QApplication app(argc, argv);
 QWebView view;
 view.load(QUrl("http://www.trolltech.com/"));
 view.show();
 return app.exec();
 }

y continúa con cómo utilizar QWebPluginFactory para crear un widget simple que muestra archivos separados por comas (CSV).

Adición de nuevos protocolos para QtWebKit

David continúa con Agregar nuevos protocolos a QtWebKit donde utiliza la API de Qt de acceso a la red con WebKit a la vez que convierte QWebView en un simple cliente FTP. El API de acceso a la red de Qt es una tecnología que pretende sustituir muchas, pero no todas las funcionalidades proporcionada por las clases QHttp que reúnan las condiciones establecidas. Aunque el acceso a la red de la API es una tecnología específica de Qt, el módulo QtWebKit integra esta tecnología de Qt con WebKit para permitir la personalización del motor del navegador por los desarrolladores de aplicaciones Qt. También significa que podemos controlar la forma en que obtiene y "renderiza" el contenido el motor del navegador.

Puesto que QNetworkRequest y QNetworkReply están diseñados para proporcionar una abstracción reutilizable para las operaciones de red, parece obvio utilizar estas clases para añadir soporte de FTP para navegadores escritos utilizando QtWebKit. Para ello, primero tenemos que examinar las clases de acceso a la red antes de que veamos cómo el módulo QtWebKit los usa para gestionar operaciones de red.

NetworkAccessManager::NetworkAccessManager(QNetworkAccessManager *manager, QObject *parent)
 : QNetworkAccessManager(parent)
{
 setCache(manager->cache());
 setCookieJar(manager->cookieJar());
 setProxy(manager->proxy());
 setProxyFactory(manager->proxyFactory());
}