Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Fonctions  · 

A Web Browser

This example utilizes the Microsoft Web Browser ActiveX control to implement a fully functional Web Browser application. The user interface has been developed using the Qt Designer integration of the QAxWidget class.

The code demonstrates how the Qt application can communicate with the embedded ActiveX controls using signals, slots and the dynamicCall() function. Most signal and slot connections have already been set up within Qt Designer.

    void MainWindow::init()
    {
        pb = new QProgressBar( statusBar() );
        pb->setPercentageVisible( FALSE );
        pb->hide();
        statusBar()->addWidget( pb, 0, TRUE );

        connect( WebBrowser, SIGNAL(ProgressChange(int,int)), this, SLOT(setProgress(int,int)) );
        connect( WebBrowser, SIGNAL(StatusTextChange(const QString&)), statusBar(), SLOT(message(const QString&)) );

        WebBrowser->dynamicCall( "GoHome()" );
    }
The init() function is implemented to create a progress bar as the child of the status bar, and to connect Internet Explorer's ProgressChange() and StatusTextChange() signals to the respective displays.

Finally the GoHome() function of Internet Explorer is invoked using the QAxBase::dynamicCall() dynamicCall() API.

    void MainWindow::go()
    {
        actionStop->setEnabled( TRUE );
        WebBrowser->dynamicCall( "Navigate(const QString&)", addressEdit->text() );
    }
The go() function calls the NavigateTo() function of Internet Explorer, passing the text of the address bar as the argument.

    void MainWindow::setTitle( const QString &title )
    {
        setCaption( "Qt WebBrowser - " + title );
    }
The setTitle() slot is connected to the TitleChange() signal of Internet Explorer, and updates the caption of the window using the provided title string.

    void MainWindow::setProgress( int a, int b )
    {
        if ( a <= 0 || b <= 0 ) {
            pb->hide();
            return;
        }
        pb->show();
        pb->setTotalSteps( b );
        pb->setProgress( a );
    }

    void MainWindow::setCommandState( int cmd, bool on )
    {
        switch ( cmd ) {
        case 1:
            actionForward->setEnabled( on );
            break;
        case 2:
            actionBack->setEnabled( on );
            break;
        }
    }

    void MainWindow::navigateBegin()
    {
        actionStop->setEnabled( TRUE );
    }

    void MainWindow::navigateComplete()
    {
        actionStop->setEnabled( FALSE );
    }
The setProgress(), setCommandState(), navigateBegin() and navigateComplete() slots are connected to the respective signals of Internet Explorer and update the user interface.

The rest of the implementation is not related to ActiveQt and omitted for brevity.

To build the example you must first build the QAxContainer library. Then run your make tool in examples/webbrowser and run the resulting webbrowser.exe.

See also The QAxContainer Examples.

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 80
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 6
Page suivante

Le Qt Labs au hasard

Logo

Améliorer les performances de Qt lors du rendu avec plus de SIMD

Les Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 3.3
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web