2011-09-14 7 views
0

J'ai réimplémenté le gestionnaire QWidget :: event(), où je gère l'événement windowStateChange. Je me demandais s'il y avait un moyen d'identifier quel widget envoie cet événement.Comment identifier l'expéditeur QEvent

Répondre

0

Cet événement est généré lorsqu'une fenêtre est réduite, agrandie ou en mode plein écran. Vous ne devriez donc la voir que depuis le widget auquel elle s'applique.

+0

Le problème que je rencontre est le suivant. J'ai Phonon :: VideoWidget dans l'une des dispositions dans la MainWindow. Chaque fois que MainWindow est en mode plein écran et que la lecture est arrêtée, MainWindow quitte le mode plein écran. Je suis perplexe parce que je ne fais rien pour rétablir la MainWindow dans NoState. Je me demande si Phonon: VideoWidget doit faire quelque chose avec ça? – Neox

+0

Je vois. Il n'y a pas beaucoup de documentation à trouver concernant le mode plein écran pour ce widget. J'ai l'impression qu'il s'agit d'une fonctionnalité très pratique et qu'ils mentionnent que pour des interactions plus complexes, vous devez gérer manuellement une implémentation en plein écran. –

0

Non, il n'y a aucun moyen de le faire, car l'envoi ou l'envoi d'un QEvent ne nécessite pas d'instance QObject. Lorsque vous publiez un événement, cela se fait via une méthode QCoreApplication statique et il ne demande pas qui envoie l'événement. Heck, ce serait contre-productif, car un moyen utile d'interopération entre Qt et un autre code axé sur les événements est de faire une traduction d'événement et de poster les événements sur le côté Qt des choses. Le code d'enregistrement peut être une fonction externe "C".