Je crée une petite application PyQt et je suis coincée dans l'effet MouseOver. J'ai un QMainWindow
qui a trois boutons nommés createProfileButton
, downloadPackagesButton
et installPackagesButton
. Tous ceux-ci sont de type QPushButton
QPushButton FocusIn génère quel signal?
Maintenant, j'ai créé une étiquette qui tiendra le texte lorsque quelqu'un passe la souris sur l'un de ces boutons. J'ai vérifié la documentation et est venu à savoir qu'il peut être manipulé à l'aide sur-riding
- focusInEvent (auto, QFocusEvent)
- focusOutEvent (auto, QFocusEvent)
méthodes du bouton. Maintenant, cela signifie que je dois étendre QPushButton
pour chacun des trois boutons et chacun d'eux a un objet pour une classe. J'ai essayé de chasser pour le signal qui est émis quand la souris est plané ou enlevé du bouton, mais en vain. Toute l'aide que j'ai eu sur le net consistait à implémenter ces deux méthodes.
Est-ce que l'extension d'une classe et la création de l'une d'entre elles sont excessives? Un signal serait net, malheureusement, je n'ai trouvé aucun signal.
- http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qpushbutton.html - a aucun signal
- http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qabstractbutton.html - A vous cliquez dessus, libérés, pressés et signaux basculés
- http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwidget.html - n'a qu'une seule méthode
Alors j'ai vérifié toute la hiérarchie de l'héritage et n'a trouvé aucune signal pour FocusIn
et FocusOut
Je voulais dire que c'est la seule façon d'ajouter des événements de mise au point. J'ai encore dit que je voulais utiliser des signaux et non des méthodes d'événements. Je ne veux pas sous-classer une classe pour chaque bouton. –
Il n'y a pas de signal pour le focus comme vous l'avez dit vous-même, vous devez soit sous-classe QPushButton (une fois pas une pour chaque instance) pour envoyer un signal quand il obtient le focus, ou utilisez QApplication.focusChanged comme Kaleb dit. –
@Manish - Je vois ce que vous obtenez. J'ai édité ma réponse pour clarifier comment vous classeriez sous-classe. Si l'option 2 n'est pas assez claire, faites le moi savoir. –