Comment ouvrir une URL dans une boîte de dialogue ?

Vous voulez de l'aide ? Postez ici :)
Post Reply
Tara42
Posts: 40
Joined: 16 Jul 2014, 21:54

Comment ouvrir une URL dans une boîte de dialogue ?

Post by Tara42 »

Bonjour,

Je n'arrive pas à trouver la solution pour ouvrir une URL de type file dans une nouvelle fenêtre du navigateur par défaut à l'intérieur d'une boîte de dialogue.

Dans mon cas particulier, cela revient à afficher un tableau de résultats issu d'un fichier HTML avec du code JavaScript permettant la transformation XSLT d'un fichier XML.

A noter qu'il ne faut pas interférer sur la ou les fenêtre(s) du navigateur par défaut peut-être déjà ouverte(s) par ailleurs.

Quel code faut-il donc mettre dans l'action "Ouvrir URL" pour arriver à ce résultat ?? :( :(

S'il faut utiliser une autre méthode, je suis preneur également !...

Merci pour votre aide car cette étape est vraiment indispensable pour mon projet !...

Bien cordialement.
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Violette »

une URL de type file dans une nouvelle fenêtre du navigateur par défaut à l'intérieur d'une boîte de dialogue
Whoo, euh j'ai rien compris, si tu veux ouvrir une url dans une nouvelle fenêtre du navigateur par défaut, tu as juste a mettre une action Ouvrir URL et mettre ton lien :X. Mais je doute que ce soit ça que tu veuilles faire.

Si j'ai bien compris, tu voudrais ouvrir une url, mais dans une boite de dialog ?

Sinon tu peux faire un schéma du résultat que tu voudrais obtenir ou l'expliquer différemment stp, histoire de bien comprendre ce que tu veux =).

Edit : Ya juste le truc parfait pour faire ce que tu veux avec le module QtWebKit.

RE Edit : Je croit que j'ai du edit ce message une bonne quinzaine de fois...

RE RE EDIT : A march pa, car il n'y a point de QWebView dans les classes de Qt dispo dans Actionaz, pourtant ya bien le dll dans le dossier d'install d'Actionaz donc je sais pas du tout comment ça fonctionne. J'essaye de trouver la version de Qt qu'Actionaz utilise, je suis sur de l'avoir lu quelque part, mais comme d'hab quand on cherche, on trouve pas mdr.
Tara42
Posts: 40
Joined: 16 Jul 2014, 21:54

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Tara42 »

Merci Violette pour ta réponse !

Effectivement la classe QWebView du module QtWebKit permet de faire beaucoup de choses mais mes besoins sont plus modestes : juste ouvrir une fenêtre du navigateur par défaut à l'intérieur d'une boîte de dialogue. Et ce n'est pas pour afficher du contenu Web mais pour afficher un fichier HTML (qui est le résultat d'une transformation d'un fichier XML).

Autrement dit : il y a 3 fichiers : le fichier XML avec les infos, le fichier XSLT qui traite les infos du fichier XML et le fichier HTML qui contient le script JavaScript pour associer les deux fichiers précédents et afficher le résultat.

Exemple simpliste qui affiche le nom et le prénom d'une personne (informations contenues dans un fichier XML) :

Voici le fichier XML :

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1"?>
<Identite>
<Nom V="DUPOND"/>
<Prenom V="Gérard"/>
</Identite>
Voici le fichier XSLT :

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Informations :</title>
</head>
<body>
<table width="200" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <th scope="col">Nom</th>
    <th scope="col">Prénom</th>
  </tr>
  <tr>
  <td><center><xsl:value-of select="//Nom/@V"/></center></td>
  <td><center><xsl:value-of select="//Prenom/@V"/></center></td>
  </tr>
</table>
</body>
</html>
  </xsl:template>
</xsl:stylesheet>
Et voici enfin le fichier HTML que je dois ouvrir dans une fenêtre d'un navigateur pour que cela marche :

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <script>
function loadXMLDoc(filename)
{
if (window.ActiveXObject)
  {
  xhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
else 
  {
  xhttp = new XMLHttpRequest();
  }
xhttp.open("GET", filename, false);
try {xhttp.responseType = "msxml-document"} catch(err) {} // Helping IE11
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
  xml = loadXMLDoc("Fichier_XML.xml");
xsl = loadXMLDoc("Fichier_XSLT.xsl");
// code pour IE
if (window.ActiveXObject || xhttp.responseType == "msxml-document")
  {
  ex = xml.transformNode(xsl);
  document.getElementById("example").innerHTML = ex;
  }
// code pour Chrome, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor = new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml, document);
  document.getElementById("example").appendChild(resultDocument);
  }
}
</script> </head>
  <body onload="displayResult()">
    <div id="example"> </div>
    
  </body>
</html>
C'est ce fichier que je veux ouvrir dans une boîte de dialogue, ce qui a mon sens impose que ce soit dans une fenêtre d'un navigateur si QWebView n'est pas disponible dans Actionaz. :roll:

Une solution ?? :(
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Violette »

Tu ne peux pas ouvrir ouvrir une fenêtre du navigateur par défaut à l'intérieur d'un QDialog.
Et ce n'est pas pour afficher du contenu Web mais pour afficher un fichier HTML
:? :? :? :? :? :? :? :? :? :?

Tu veux dire que le fichier n'est pas hébergé sur un serveur mais en local, je présume. QWebView, enfin plutôt QUrl prend en charge les adresses locales.
Donc soit QWebView soit... Soit... Sans QWebView, ton js ne sera pas interprété tel quel, l'objet window par exemple n'est pas présent dans Actionaz. Fin si mais non.

EDIT : Sinon pour ouvrir ton fichier HTML dans ton navigateur, (mais pas dans un QDialog), il faut utiliser

Code: Select all

var url = new System();
url.openUrl("http://www.nelson-haha.com/");
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Jmgr »

Tu peux utiliser l'action Ouvrir URL pour un nouvel onglet/une nouvelle fenêtre (dépend de la configuration de ton navigateur). Par contre tu ne peux pas ouvrir ton navigateur par défaut dans une autre fenêtre gérée par Actionaz.

Je n'ai jamais utilisé le binding de WebKit dans le code (Javascript) d'Actionaz, à priori ça n'a pas l'air de fonctionner. Il faudra que je regarde comment ce binding est réalisé dans le code source. (je ne l'ai pas ici)
"My software never has bugs. It just develops random features."
Tara42
Posts: 40
Joined: 16 Jul 2014, 21:54

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Tara42 »

Je suis quand même preneur d'une solution avec le WebKit de Qt si cela peut fonctionner dans Actionaz !! :( :(

Merci Jmgr de regarder si ce n'est pas trop long... :wink:
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Jmgr »

J'ai vérifié, en fait c'est une limitation de l'outil qui génère les bindings Javascript : il ne peut pas inclure tous les modules de Qt pour des raisons diverses.
"My software never has bugs. It just develops random features."
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Violette »

Sniff donc je présume que c'est foutu du coup ? C'est bien dommage ça mais bon.
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Comment ouvrir une URL dans une boîte de dialogue ?

Post by Jmgr »

La seule solution que je vois c'est de développer un objet Javascript spécifique, mais vu la quantité de fonctionnalités qu'a QWebKit ça peut être très long. Mais sinon on peut aussi n'implémenter qu'une partie. Par exemple :
  • show
  • showModal
  • openURL
  • onURLLoaded (callback: fonction appelée lorsque la page est chargée)
  • getSource (récupère le code source de la page)
  • runJavascript (exécute du Javascript sur la page)
Si quelqu'un a d'autres idées de fonctions...
"My software never has bugs. It just develops random features."
Post Reply