7
votes

Balloon-astuces avec qt

Dans mon application QT, j'aimerais utiliser des ballons / ballons-astuces comme indiqué dans le Guide de l'expérience utilisateur Windows (pas les ballons de plateau système).

est-ce pris en charge par qt? Je n'ai rien trouvé. Y a-t-il une bibliothèque open source là-bas pour cela (Qxt ne l'a pas)? Quelle est la meilleure façon de créer cela moi-même?


2 commentaires

À ma connaissance, rien ne construit dans QT qui le fera. Je les voulais avant et fini par écrire un widget personnalisé de zéro pour le faire.


A-t-il fonctionné de manière satisfaisante? Souhaitez-vous partager votre solution ou quelques idées?


3 Réponses :


0
votes

Rechercher QballOonTip Classe (dans la documentation QT (référence DOXYGEN) et la base de code, regardez la manière dont elle est implémentée et utilisez une technique similaire.


2 commentaires

Sauf que qballoontep est une classe interne définie dans src / gui / utils / util / qsystemtrayicon_p.h et ne faisant pas partie de l'API publique et documentée.


Qt 4.7 Assistant ne connaît pas cette classe. Une recherche Google affiche cette classe interne utilisée par Qsystemtrayicon et ne fait pas partie de l'API. Êtes-vous sûr que c'est la classe que je cherche?



0
votes

Vous pouvez utiliser qballoontep qui est une classe interne définie dans:

  • QT 5:

    qtdir / src / qtbase / src / widgets / util / qsystemtrayicon_p.h

  • qt 4:

    qtdir / src / gui / utils / util / qsystemtrayicon_p.h

    qballoontep hérités qwidget et il est implémenté dans qsystemtrayicon.cpp dans le même répertoire. Il a la méthode suivante pour montrer une astuce de ballon: xxx

    Vous pouvez modifier le code source de cette classe pour avoir la pointe de la ballonnette souhaitée.


0 commentaires

0
votes

Pour utiliser la classe privée qbaloonTip dans qt 5.12 Vous devez procéder comme suit:

1) Ajouter qt + = widgets-privé à votre fichier pro pour pouvoir inclure des en-têtes privés

2) #include dans votre fichier source

Appelez ensuite la méthode statique showballon () ou instanciez-le et appelez Balon () . Mais ce n'est vraiment que pour le plateau système et c'est une API privée, qui peut changer à tout moment. Personnellement, je ne l'utiliserais pas. Mais si vous voulez savoir comment il est rendu, consultez https://code.woboq.org/qt5/qtbase/src/widgets/util/qsystemtrayicon.cpp.html#_zn11qballOonTip10painteetep1paintPaintevent


0 commentaires