IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Capter les messages de rafraichissement


Sujet :

Qt

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut Capter les messages de rafraichissement
    Bonjour,

    Je suis un débutant en QT, donc peut-être que ma question est stupide.
    Je vourdais afficher une fenêtre Direct3D dans QT.
    En dérivant une classe QT comme QWidget, ça marche.
    Mais je ne veux pas dériver de classe pour le rendu Direct3D car je veux pouvoir faire du rendu Direct3D sur n'importe quel élément, pour pouvoir facilement utiliser le designer de QT et pour ne pas avoir à dériver tout les éléments un par un sur lesquels je voudrais faire du rendu D3D.

    J'y arrive déjà sur un bouton par exemple en récupérant l'identifiant de fenêtre Windows de l'élément:
    Direct3DInit( ui.pushButton_D3D->winId(),ui.pushButton_D3D->width(),ui.pushButton_D3D->height() ) ;
    Et je fais mon rendu D3D lors du clique sur un autre bouton:
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(s_testClick()));
    void D3DTest2::s_testClick( void )
    {
    m_pDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(89,135,179), 1.0f, 0 );
    m_pDevice->BeginScene();
    m_pDevice->EndScene();
    m_pDevice->Present(NULL, NULL, NULL, NULL);
    }

    Quand je click sur le bouton "pushButton", mon bouton "pushButton_D3D" affiche bien mon rendu D3D.
    Mon problème est le suivant:
    Je voudrais maintenant pouvoir afficher mon rendu D3D à chaque rafraichissement de l'élément.
    (dans mon exemple ci-dessus, mon rendu D3D est remplacé par l'image normal du bouton avec le texte du bouton, lorsque je le survol ensuite avec la souris)
    Il faudrait pour cela que je puisse capter le rafraichissement de l'élément pour effectuer le rendu D3D.

    Comment faire ?
    paintEvent ne semble pas être déclaré comme "signal".

    Merci.

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Tu n'as pas le choix, il va falloir dériver des classes qui t'intéressent.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut
    J'ai trouvé une méthode qui fonctionne en utilisant un thread qui force le rendu D3D régulièrement.
    Je vais quand même essayer de trouver un autre moyen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. capter les messages d'interbase dans une appli
    Par devalender dans le forum InterBase
    Réponses: 6
    Dernier message: 25/06/2004, 17h58
  2. Réponses: 2
    Dernier message: 06/04/2004, 09h39
  3. sniffer les messages sortant
    Par ashram dans le forum Développement
    Réponses: 3
    Dernier message: 08/07/2003, 12h31
  4. SNMP: comment on voit les messages trap ???
    Par talakela dans le forum Développement
    Réponses: 2
    Dernier message: 03/06/2003, 18h39
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo