Dans une boîte de dialogue, j'ai un QLineEdit et un bouton. Je veux activer une info-bulle pour le QLineEdit (dedans ou dessous) quand j'appuie sur le bouton. S'il vous plaît donnez-moi un extrait de code.QT - Comment appliquer un QToolTip sur un QLineEdit
Répondre
Voici un exemple simple:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget* parent = 0) : QWidget(parent)
{
QVBoxLayout* layout = new QVBoxLayout(this);
edit = new QLineEdit(this);
layout->addWidget(edit);
showButton = new QPushButton("Show tool tip", this);
layout->addWidget(showButton);
hideButton = new QPushButton("Hide tool tip", this);
layout->addWidget(hideButton);
connect(showButton, SIGNAL(clicked(bool)), this, SLOT(showToolTip()));
connect(hideButton, SIGNAL(clicked(bool)), this, SLOT(hideToolTip()));
}
public slots:
void showToolTip()
{
QToolTip::showText(edit->mapToGlobal(QPoint()), "A tool tip");
}
void hideToolTip()
{
QToolTip::hideText();
}
private:
QLineEdit* edit;
QPushButton* showButton;
QPushButton* hideButton;
};
Comme vous pouvez le voir, il n'y a pas moyen facile de permettre que la pointe de l'outil de certains widgets. Vous devez fournir des coordonnées globales au QToolTip::showText
.
Une autre façon de procéder est de créer un QHelpEvent
et de publier cet événement en utilisant QCoreApplication::postEvent
. De cette façon, vous pouvez spécifier le texte à afficher dans votre widget en utilisant QWidget::setToolTip
. Cependant, vous devez toujours fournir des coordonnées globales. Je suis vraiment intéressé par la raison pour laquelle vous voulez faire cela puisque les conseils d'outil sont destinés à être affichés uniquement lorsque vous passez votre souris ou lorsque vous demandez l'information "Qu'est-ce que c'est". Il ressemble à un mauvais design pour l'utiliser pour autre chose. Si vous voulez donner un message à l'utilisateur, pourquoi n'utilisez-vous pas QMessageBox
?
Si vous avez besoin d'info-bulle pour QLineEdit, quel est le problème? Il suffit de définir:
myLineEdit->setToolTip("Here is my tool tip");
Mais si vous avez juste besoin de montrer un texte après un certain button
a été pressé, voici l'autre solution: créer une fente, par exemple on_myBytton_clicked()
et connectez-vous à votre bouton. Dans la fente faire le setText() fonction avec votre texte sur , QTextEdit
et etc widgets situés sur votre formulaire.
J'espère que cela vous aidera.
Ce n'est pas ce que l'OP a demandé. Mais vous avez raison: je pense aussi que c'est une meilleure idée d'utiliser un 'QLabel' au lieu d'une info-bulle. – Job
Votre réponse n'a aucun lien avec ma question. Je demande comment utiliser toolTip !!! – Narek
Donc, vous feriez mieux de lire sur la façon de poser la bonne question, avant de les poster ... – mosg
- 1. Affichage infobulle de QLineEdit sur focus dans Qt
- 2. Qt 4.5 Focus ne fonctionne pas sur QLineEdit
- 3. Qt QLineEdit validation personnalisée en ruby
- 4. Qt - Comment faire des exposants et des indices dans un QLineEdit?
- 5. Comment envoyer un événement "Ctrl + C" à un widget Qt?
- 6. Comment appliquer un correctif
- 7. Comment appliquer un codage UTF8 sur un rapport CSV généré?
- 8. Comment appliquer un filtre médian à un UIImage sur l'iPhone?
- 9. Comment appliquer un filtre global sur Entity Framework?
- 10. jQuery: comment appliquer des effets sur un élément enfant
- 11. comment appliquer un groupe sur des éléments xslt
- 12. Comment appliquer une classe CSS sur un MVC Html.TextBox
- 13. QLineEdit: comment gérer les flèches haut et bas?
- 14. Comment appliquer Framework dans un projet?
- 15. C# LINQ - Comment appliquer un groupe par?
- 16. Comment appliquer un thème aux formulaires Windows?
- 17. Comment appliquer un tri alphanumérique dans XSLT
- 18. Comment appliquer une fonction à un tuple?
- 19. Comment déterminer combien d'espace libre sur un lecteur dans Qt?
- 20. Comment utiliser les fonctions OpenGL sur un QT OpenGL Widget?
- 21. Appliquer un ID à un GridView
- 22. Comment appliquer un attribut .net à un type de retour
- 23. Comment appliquer un correctif à un projet Java?
- 24. Comment appliquer un storyboard à un label par programmation?
- 25. Comment personnaliser un listview en Qt
- 26. Appliquer un style différent au bouton lorsque vous appuyez sur
- 27. Comment concevoir un IDE en utilisant Qt?
- 28. Appliquer plusieurs classes CSS sur un élément HTML (jQuery addClass)
- 29. Comment lancer un processus basé sur la console et appliquer un titre personnalisé à l'aide Powershell
- 30. Comment copier un objet dans Qt?
Merci. Je veux utiliser ceci afin de dire à l'utilisateur que le QLineEdit va être rempli avec l'état de CapsLock ON (pour le champ de mot de passe). Il y a deux questions: 1) Pourquoi si je ne sépare pas cette définition de classe dans les fichiers .cpp et .h cela donne une erreur de lien (un problème de vtable)? Et comment puis-je avoir plus d'un QToolTips invoqué séparément dans une classe? Je vois que vous avez utilisé des fonctions statiques que vous avez utilisées. – Narek
1: Probablement parce que vous n'avez pas # inclus le fichier moc. Voir http://stackoverflow.com/questions/3001615/qt-moc-with-implementations-inside-of-header-files/ 2: Je ne comprends pas vraiment votre question. Voulez-vous dire montrer plus d'une info-bulle à la fois? C'est impossible. – Job
merci pour la solution que vous avez postée.il est super! – Tracy