Bienvenue sur le forum !

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

Qt : 5.10.0 - Qt Creator : 4.5.0 - Qt Installer : 3.0.2 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt3] Qu'elle est la meilleure façon de faire clignoter un objet graphique ?

Bonjour,
Je cherche à faire clignoter des boutons pour attirer l'attention de l'utilisateur.
Existe-t-il :
* Des classes Qt appropriées,
* Des exemples de code.

Merci.

Réponses

  • November 2006 modifié
    Salut,

    je ne sais pas trop comment faire, mais regarde du côté des CSS
    Ce n'est peut-etre pas le bouton qui clignotera mais au moins le texte.
    romain
  • November 2006 modifié
    Bonjour,

    Il s'agit de Qt3, donc les css n'existent pas. De plus même en Qt4 je ne crois pas qu'il soit possible de faire clignoter quoi que ce soit.

    Il faut que tu utilises un QTimer pour changer périodiquement les propriétés de tes boutons (changement de couleur du texte par exemple).

    woogluf
  • Je m'en doutais !
    Je vais donc utiliser un QTimer.
    Merci.
  • Sous Mac OSX mettre les propriétés autoRepeat et autoDefault du bouton à true a pour effet de faire clignoter le bouton.
    A tester !
  • kraymer said:
    Sous Mac OSX mettre les propriétés autoRepeat et autoDefault du bouton à true a pour effet de faire clignoter le bouton. A tester !
    J'utilise actuellement Qt 3.3 dans un environnement Linux (CentOS 4.4, kernel 2.6.9) et l'affectation à "true" des propriétés ne fait pas clignoter le bouton.

    J'ai donc utilisé deux "QTimer" pour effectuer un clignotement "on" / "off" en modifiant les propriétés de couleur ("background" et "foreground") du bouton.
    Merci à tous.
  • Tu peux te simplifier la tâche: 1 QTimer suffit, vu que tu fais de l'alternance, suffit d'un "btn->etVisible(!btn->isVisible())".
    Sauf si ce n'est pas régulier, mais bon... :)
  • En fait c'est la couleur que je veux faire évoluer et mon clignotement n'est pas régulier.
    Par exemple : - rouge pendant 1 seconde - vert pendant une demi seconde.
  • Ok, j'ai rien dit :)
  • Afin d'éviter d'utiliser n timers pour n couleurs, l'opérateur modulo peut aider :

    dans ton cas çà donne :
    slot_du_timer(){
    incrémenter un compteur associé au bouton
    si (compteur%3 == 0) colorer en vert
    sinon en rouge
    }
  • Ca ne résoud pas le besoin d'un clignotement *irrégulier*, donc pas le même intervalle ;)
    Sinon, faut changer le timeout en permanence, et je sais pas si c'est top; t'évites les collisions ceci dit...
  • c'est vrai, mais je me suis basé sur cette définition de *irrégulier* :
    Bearnaise said:
    Par exemple : - rouge pendant 1 seconde - vert pendant une demi seconde.
    au cas où ce serait effectivement le comportement désiré par Bearnaise
  • Moui, effectivement (oups :/ )
  • Merci pour vos suggestions.
    En fait, plus précisément, mes spécifications sont :
    * J'ai n boutons graphiques (max 80)
    * J'ai 3 fréquences programmables avec un temps actif et un temps repos pouvant être différents (clignotement irrégulier)
    * Le clignotement d'un bouton est réalisé en permutant la couleur du texte (foreground) avec celle du fond (background)
    Chaque bouton peut recevoir la fonction de clignotement avec une des trois fréquences.
    Parallèlement, ces fréquences de clignotement peuvent être utilisées pour piloter une sortie (I/O) connectée à une led ou un buzzer.

    Je pense donc utiliser 3 timer et modifier le "timeout" à chaque relance du timer.
    Je tacherais de revenir sur cette discussion lors de la réalisation de la fonction (pour l'instant, je réalise une maquette et élabore un dossier de conception).
Connectez-vous ou Inscrivez-vous pour répondre.