Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Défilement dans le status bar

Bonjour,

est ce possible de faire défiler des informations dans le status bar d'un QMainWindow ?

Bien à vous

Réponses

  • Oui tu fais un offset du texte pour le faire défiler et tu appelles cela avec un timer pour l'animation.
  • Est ce possible d'avoir plus de détails ?

    j'arrive pas à voir le bout de ton message !

    Merci
  • je pense que son idee est d'apeller via un qtimer un slot qui affichera le texte pour toi et dans ce slot tu geres le defilement (tu retires a chaque appel un caractere de ta phrase pour donner l'impression de defilement).
  • mais forcement il y a un truc en relation avec l'offset non ?
  • December 2009 modifié
    Crée une classe dérivant de QObject, tu ajoute un slot void update(), il faut qu'elle ait une référence sur la bar d'état, un membre QString contenant le message et agrège un QTimer.

    Dans le constructeur de ta classe, tu crées le timer et le connectes
    MaClasse(QStatusBar* statusBar, QObject* parent) : QObject(parent), _timer(0), _msg(""), _statusBar(statusBar)
    {
    _timer = new QTimer(this);
    connect(_timer, SIGNAL(timeout()), this, SLOT(update()));
    _timer->start(100); // influe sur la vitesse de défilement
    }
    Et dans le slot update() tu décales le texte en le gérant comme une boucle, tu supprimes le premier caractère, et tu le places à la fin.
    Défilement vers la gauche
    void update() 
    {
    if(_msg.isEmpty())
    {
    _statusBar->clearMessage();
    }
    else
    {
    int pos = _msg.length() - 1;
    _msg = _msg.right(pos) + _msg[0];
    _statusBar->showMessage(_msg);
    }
    }
    Défilement vers la droite
      _msg = _msg[pos] + _msg.left(pos);
Connectez-vous ou Inscrivez-vous pour répondre.