Ich stoße in WxPython auf etwas störendes Verhalten mit modalen Frames. Wie wir alle wissen, erscheint ein modales Fenster im Vordergrund (oben auf dem Hauptfenster) und das Hauptfenster sollte nicht mehr zugänglich sein (keine Antwort zum Klicken zum Beispiel).WxPython - Ungenaues modales Windows-Verhalten
Dies funktioniert wie erwartet mit verschachtelten WxFrames, bis die Windows-Startleiste (Status) verwendet wird. Wenn der Benutzer auf den Hauptrahmen in der Windows-Leiste klickt, erscheint er über dem zweiten Rahmen, was völlig ungenau ist, da der Benutzer nicht versteht, was passiert und warum das Fenster nicht zugänglich ist.
Die erste Lösung, die mir in den Sinn kommt, ist, das Aktivierungsereignis des ersten Frames zu binden und programmatisch (& systematisch) den zweiten Frame in den Vordergrund zu setzen. Es erscheint mir jedoch merkwürdig, dass dieses Verhalten nicht schon von WxPython auf natürliche Weise gemacht wird.
Hat jemand eine Idee oder eine native/generische Lösung dafür?
"verschachtelte modale Rahmen" klingt von Anfang an nach einer schrecklichen Idee. Du könntest gut in der verwirrenden Position enden, in der du nach jemandem suchst, der eigentlich den Fokus hat. –
Vergessen Sie das Wort "verschachtelt"! Ich werde dieses Wort aus dem Titel entfernen, wenn es verwirrend ist. Dieses Problem tritt sogar mit nur "einem" modalen Rahmen auf und ich denke nicht, dass es eine schreckliche Idee ist, ein modales Fenster zu verwenden. –
Ein modales Fenster blockiert alle anderen Workflows im Programm der obersten Ebene, bis das modale Fenster geschlossen wird. Modale Fenster sollen die volle Aufmerksamkeit des Benutzers erregen. Benutzer erkennen möglicherweise nicht, dass ein modales Fenster ihre Aufmerksamkeit erfordert, was zu Verwirrung über das Hauptfenster führt, das nicht reagiert. In schweren Fällen erscheint das modale Fenster hinter einem anderen Fenster, das von demselben Programm gesteuert wird, wodurch möglicherweise das gesamte Programm nicht mehr reagiert, bis das modale Fenster manuell gefunden werden kann. https://en.wikipedia.org/wiki/Modal_window –