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 :

rafraîchir une application


Sujet :

Qt

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut rafraîchir une application
    bonjour, j'ai une application qui permet d'afficher certaines données à travers des QDials mais seule la valeur initiale s'affiche et reste figée
    j'ai essayé avec un timer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(timer, SIGNAL(timeout()), RPMdial, SLOT(update()));
    mais ça ne change rien quelqu'un a une idée ?

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Tu n'aurais pas un peu plus de code car comme ça je pense que personne ne peu dire grand chose...
    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.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    C'est vrai que c'est léger comme description.
    Jete un œil du coté de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QCoreApplication::processEvents();
    Mais avec aussi peu de détail, je doute que ce soit la solution

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     RPMdial = new QDial(centralWidget);
               RPMdial->setObjectName(QString::fromUtf8("RPMdial"));
               RPMdial->setSingleStep(100);
               RPMdial->setValue(int(Tachometer));
    la variable Tachometer varie au cours du temps et donc l'aiguille du RPMdial devrait osciller voici la solution que j'ai essayé pour rafraîchir la valeur du RPM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     QTimer *timer = new QTimer(MaMainWindow);
            QObject::connect(timer, SIGNAL(timeout()), RPMdial, SLOT(update()));
            timer->start(1000);

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Points : 65
    Points
    65
    Par défaut
    Une autre solution possible :

    Chaque QObject peut déclencher des timers avec la méthode startTimer()
    Il suffit de surcharger la méthode timerEvent(QTimerEvent *).
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QTime>
    #include <QPainter>
     
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent), ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        startTimer(1000);
    }
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    void MainWindow::paintEvent(QPaintEvent *evt)
    {
        QPainter painter(this);
        QTime time = QTime::currentTime();
        painter.drawText(width()/2, height()/2, time.toString());
    }
     
     
    void MainWindow::timerEvent(QTimerEvent *evt)
    {
        repaint();
    }

  6. #6
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par AM1NE Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     QTimer *timer = new QTimer(MaMainWindow);
            QObject::connect(timer, SIGNAL(timeout()), RPMdial, SLOT(update()));
            timer->start(1000);
    Tu es sur qu'il y a bien un slot update qui fait bien ce que tu desirs dans la classe QDial ?

    A mon avis tu devrais regarder dans la FAQ comment on utilise un QTimer. Il y a un exemple qui ressemble a ce que tu veux faire. C'est un chronometre.
    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.

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

Discussions similaires

  1. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 14h02
  2. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 15h39
  3. Réponses: 1
    Dernier message: 13/05/2002, 10h19
  4. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 21/04/2002, 00h22
  5. Réponses: 2
    Dernier message: 15/04/2002, 13h56

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