Bonjour,
Dans mon application je souhaite afficher une sorte de tooltip, mais qui soit affiché par programmation et pas par le passage de la souris, et qui reste affiché tant que l'utilisateur ne le ferme pas. C'est un peu une pop-up sauf qu'elle ne doit pas être bloquante, seulement affichée par dessus mon interface.
Je ne savais pas trop comment m'y prendre, j'ai donc essayé en créant un widget contenant un label et un bouton pour fermer ce tooltip. Voilà à quoi ressemble son constructeur :
où parent est un QWidget* passé en argument.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 setWindowFlags(Qt::ToolTip); QVBoxLayout* layout = new QVBoxLayout; layout->addWidget(&_label); layout->addWidget(&_closeButton); setLayout(layout); connect(&_closeButton, SIGNAL(clicked()), this, SLOT(close())); qDebug() << "Parent: " << parent->pos() << " - Global: " << mapToGlobal(parent->pos()) << " - Parent: " << mapFromParent(parent->pos()); show();
Mon widget s'affiche et se "ferme", par contre il est positionné à 0,0 à l'écran. Hors de ma fenêtre. Le debug de la fin m'affiche uniquement des positions 0,0. Que le parent soit ma Dialog, où un bouton de cette Dialog (qui n'est pas placé à 0,0 dans ma dialog).
Je ne comprends pas pourquoi j'obtiens uniquement des positions 0,0. Je voudrais placer le tooltip à côté de ou au moins par dessus pour commencer, son parent. Si quelqu'un pouvait m'expliquer comment récupérer et utiliser correctement les positions, merci !Parent: QPoint(0,0) - Global: QPoint(0,0) - Parent: QPoint(0,0)
Au passage, je ne suis absolument pas sûr que ma manière de faire soit la meilleure pour afficher cette pop-up non bloquante, je suis preneur de toute suggestion !
Merci d'avance.
Partager