2012-03-15 10 views
9

Sospecho que esto es tan básico que nadie se molestó en documentarlo.¿Cómo visualizo HTML local en QWebview?

Quiero escribir un archivo HTML de mi programa, y ​​luego cargar ese archivo en un objeto QWebview.

Cuando tengo QtCreator abierto, puedo navegar al archivo en el bloque de URL a la derecha y se muestra dentro de QtCreator. Cuando compilo y ejecuto el programa, la ventana es blanca y en blanco.

Tampoco quiero que el directorio esté codificado, quiero que use el directorio actual.

así que supongo que hay dos preguntas:

  1. ¿Cómo se escribe el ??? a continuación, para obtener el objeto QWebview llamado "reportView" para mostrar mi archivo local?

ui->reportView->load(QUrl("???")); 

  1. ¿Por qué el objeto QWebview permanecen en blanco? Sospecho un problema al conectar con Google Docs porque me sale este error:

QSslSocket: cannot call unresolved function SSLv23_client_method 
QSslSocket: cannot call unresolved function SSL_CTX_new 
QSslSocket: cannot call unresolved function SSL_library_init 
QSslSocket: cannot call unresolved function ERR_get_error 

Gracias.

Respuesta

9

Puede usar QUrl::fromLocalFile que construirá una URL como esta "file:///path/to/file.html" desde una ruta de archivo absoluta.

Google usa SSL, y si está en Windows necesita instalar manualmente OpenSSL y copiar sus DLL en el directorio de sistema de Windows, en el directorio bin de la instalación de Qt o en la carpeta ejecutable final.

Otras plataformas ya deben tener instalado OpenSSL o un administrador de paquetes para instalarlo.

+0

Si lo construyo estáticamente, ¿incluirá automáticamente estos archivos DLL para distribución o necesito cambiar algo en el archivo .pro para configurarlo? – RuQu

+0

Tiene que ejecutar la "configuración" de Qt con la opción "-openssl-linked" y recompilar Qt (o tal vez solo el módulo QtNetwork). – alexisdm

18

Desde la web

webView->load(QUrl("http://google.de")); 

De los recursos

webView->load(QUrl("qrc:///sample.html")); 

Desde File System

webView->load(QUrl("file:///C:/sample.htm")); 

No hay necesidad de QUrl::FromLocalFile, sin necesidad de webView->show()

¡Todos son bienvenidos!

Cuestiones relacionadas