Vous pouvez définir l'info-bulle de manière dynamique en fonction de l'état du QWidget
ou en basculant simplement les deux en même temps. En désactivant/activant le widget à partir de quelque part, appelez QWidget::setToolTip(...)
avec le QString
que vous voulez que l'info-bulle s'affiche lorsque vous passez la souris sur le widget donné. Par exemple, si vous avez un slot public appelé toggleButton(bool toggleFlag)
qui permet de basculer l'enable-cadre d'un bouton, vous pouvez faire:
void MyWidget::toggleButton(bool toggleFlag) {
this->ui->myButton->setEnabled(toggleFlag);
this->ui->myButton->setToolTip(toggleFlag ? QString("Enabled wohoo!") : QString("Disabled because I like it"));
}
Vous pouvez bien sûr ne changent aussi l'info-bulle en appelant QWidget::isEnabled()
et agir sur sa valeur de retour. Puisque vous n'avez pas donné de code, je ne peux que supposer comment vous basculez votre bouton (s) donc c'est tout ce que je peux vous donner pour le moment.
MISE À JOUR: Il a été souligné dans les commentaires que les infobulles ne fonctionnent pas avec des widgets handicapés en raison de ne pas recevoir des événements de souris. Les deux instructions ne sont pas vraies (notez que j'ai utilisé le même message d'infobulle, car je ne voulais pas écrire un tout nouveau projet à partir de rien et en utiliser une existante):
- Planant un bouton désactivé déclenche l'info-bulle
- Planant un bouton activé déclenche l'info-bulle
Impossible de modifier mon poste pour une raison: quand je désactiver le widget, aucune info-bulles apparaissent, car les widgets handicapés ne reçoivent pas les événements de souris – Serge
S'il vous plaît fournir un code. Comme je l'ai mentionné (et également mis à jour mon post), les info-bulles fonctionnent pour les widgets activés et désactivés. Peut-être que vous faites quelque chose avec les événements reçus (voir [ici] (http://stackoverflow.com/a/8470888/1559401)). – rbaleksandar