2014-07-01 1 views
3

J'essaie d'intégrer une fenêtre IE dans un QFrame en utilisant QProcess pour appeler l'application IE. Je travaille sur Win7 32bit en utilisant Qt 5.2.1.Intégration de la fenêtre IE à l'intérieur d'un QFrame

J'ai essayé les approches suivantes

  • Essayez de mettre le parent du processus d'être le cadre, au lieu du MainWindow par cette

    QProcess *process = new QProcess(ui->frame_Video); 
    

ET par ce

QProcess *process = new QProcess(ui->frame_Video); 
process->setParent(ui->frame_Video); 

Puis j'ai essayé t o utilisez la méthode QWidget::createWindowContainer(). Ceci est le flux de travail que j'ai essayé de suivre:

Obtenez le wid de la fenêtre IE (en utilisant le hWnd de la fenêtre IE ou une autre méthode) Utilisez le QWindow::fromWinID() pour créer un Qwindow passer le QWindow dans QWidget::createWindowContainer()

Mes questions:

  1. Est-il possible d'intégrer une fenêtre IE dans une application Qt?
  2. En ce qui concerne ma première méthode, comment puis-je faire d'un objet QFrame un objet parent d'un processus Q?
  3. La troisième méthode est-elle valide? (Je dois encore trouver comment convertir le hWnd en IFD)
+0

Je ne pense pas que 'QProcess' implémente quelque chose pour l'intégration. Il exécute un processus distinct (application) à partir de votre application Qt. Vous pouvez essayer de regarder 'QAxWidget' à la place. – vahancho

+0

Une application (comme IE) peut-elle être exécutée en tant qu'objet de contrôle ActiveX? – user3079474

+0

@ user3079474 Oui, et c'est ce que vous voulez faire, et vous devriez utiliser le module activeqt pour cela. –

Répondre

3

Les réponses à ma question

Oui, il est possible d'intégrer une fenêtre IE dans une application Qt, (comme l'a souligné @vahancho) Vous devrez utiliser QAxWidgets. Voir l'exemple du navigateur web dans les exemples/Activeqt pour plus de détails

Questions connexes