Ich habe zwei Widgets, die folgendermaßen angeordnet sind:
Code: Alles auswählen
-----------------------------------------------
| A |
| |
| |
| ------------------------------ |
| | | |
| | B | |
| | | |
| | | |
| ------------------------------ |
| |
-----------------------------------------------
B ist normalerweise unsichtbar. setVisible(False)
Wenn der Mauszeiger A betritt (enterEvent), wird B angezeigt.
Wenn der Mauszeiger A verlässt (leaveEvent), wird B wieder versteckt.
Das Problem:
Wenn der Mauszeiger B betritt, erhält A ein leaveEvent und B wird versteckt. Dadurch erhält A wieder ein enterEvent und B wird wieder angezeigt. Bewegt man den Mauszeiger also über B hinweg, fängt B an zu flackern, da es ständig aus- und eingeblendet wird.
Eigentlich soll B nur versteckt werden, wenn der Mauszeiger die gesamte Fläche von A und B verlässt.
Wenn der Mauszeiger über B steht, soll es trotzdem angezeigt bleiben. Nur wenn der Mauszeiger die Fläche komplett verlässt, man also die Maus "nach außen" von A wegbewegt oder z.B. ein anderes Fenster in den Vordergrund holt, soll B versteckt werden.
Wie kann ich das bewerkstelligen?