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 :

Appel automatique de fonctions


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut Appel automatique de fonctions
    Bonsoir à toutes et à tous,

    J'ai un petit soucis, et j'aimerais avoir votre aide.
    En effet, je réalise pour le moment une application qui est censée gérer des animations graphiques (du style dessiner un rectangle et le mettre en mouvement).
    En d'autres termes, il existe une fonction nommée "Run" dans mon programme qui se charge de rafraichir l'espace de dessin. Seleument, je cherche un moyen de faire que cette fonction soit à chaque fois appellée par le système d'exploitation (Window), jusqu'a ce que l'utilisateur clique sur un bouton "Stop" par exemple.

    Puisque je n'ai aucune solution en tête, toute suggestion sera la bienvenue.

    Merci d'avance

  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
    Par défaut
    Salut,

    Je ne comprends pas trop le fait que ce soit appelé par l'OS. Un QTimer serait-il ce que tu cherches ? (appel d'un slot à intervalle régulier)

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    Merci de m'avoir repondu si tôt.

    S'il faut utiliser un Timer, alors l'animation sera faite avec un retardement, Puisque la fonction "Run" sera toujours appeller après un espace de temps.

    Ce que je cherche à réaliser, est t'appeller infiniment (du moins jusqu'a ce que l'utilisateur y mette fin) la fonction "Run", sans toute fois bloquer l'interface graphique.

    @@@++++

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Un Thread pour gérer ton affichage cela pourrait pas te convenir ?
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    Citation Envoyé par dj_the_kid Voir le message
    S'il faut utiliser un Timer, alors l'animation sera faite avec un retardement, Puisque la fonction "Run" sera toujours appeller après un espace de temps.
    Pas forcément, un QTimer sert aussi à appeler une fonction plusieurs fois à fréquence régulière tant qu'on ne lui dit pas de s'arrêter....

    Ce que je cherche à réaliser, est t'appeller infiniment (du moins jusqu'a ce que l'utilisateur y mette fin) la fonction "Run", sans toute fois bloquer l'interface graphique.
    C'est exactement ce que peux faire QTimer.

    Seleument, je cherche un moyen de faire que cette fonction soit à chaque fois appellée par le système d'exploitation (Window)
    Là c'est sûr c'est vraiment pas clair... Comment le système d'exploitation appelle une fonction de ton programme ? Sur quels actions ? ....

  6. #6
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Par défaut
    Bonsoir à tous une fois de plus.
    Je crois que j'ai bien compris ce que vous me suggérer. En d'autres termes, je vais me servir d'un QTimer pour resourdre mon problème, puisque je ne sais pas bien me servir d'un Thread.
    Merci encore pour tout

  7. #7
    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
    Par défaut
    Il n'y a pas nécessairement besoin de thread puisque de toute façon, la vitesse d'affichage sera dépendant du thread GUI.

    Pour te donner un ordre d'idée, afficher une image à 60Hz, ça donne un affichage suffisamment fluide pour la trèèès grosse majorité des cas (ie, c'est le framerate idéal pour les jeux ; l'un des cas les plus demandeurs en fluidité), et il te faut un timer réglé sur 16ms (en arrondissant à l'inférieur bien sûr). Au delà, ça ne sert plus à grand chose, sauf besoin extrêmement particulier... que je serais curieux de connaître si tu en as un

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

Discussions similaires

  1. Appel automatique d'une fonction en shell
    Par jaljal dans le forum Linux
    Réponses: 11
    Dernier message: 20/09/2010, 09h56
  2. Réponses: 7
    Dernier message: 22/05/2010, 08h11
  3. Appel automatique d'une fonction au lancement
    Par greg2 dans le forum C++
    Réponses: 3
    Dernier message: 10/07/2007, 09h04
  4. Réponses: 4
    Dernier message: 01/07/2004, 19h15
  5. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24

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