Qt-neue Fenster korrekt auf dem Bildschirm, center über Maus, gehen Sie in den Bildschirm

Nach vielen Monaten versucht, die Suche, die Beurteilung von Codes, etc. Ich bin nicht in der Lage, eine Lösung zu finden, um richtig zu positionieren Sie ein neues Fenster in QT. In meinem einfachsten Fall möchte ich einfach nur, um die endgültige Größe der Fenster und zentrieren Sie es unter der Maus. Es wird verschoben werden, um sicherzustellen, dass kein Teil der Fenster außerhalb des Bildschirms. Ich möchte nicht die Fenster erscheinen Sie dann in die richtige position bewegen, erzeugt visual rütteln, vor allem mit desktop-FX eingeschaltet.

Die Probleme, die ich angetroffen habe, von denen nicht alle haben die richtigen Lösungen:

  1. frameGeometry ist nicht immer aufgefüllt, bevor das Fenster wurde zuvor dargestellt.

  2. frameGeometry ist manchmal einfach völlig falsch ist, insbesondere auf Windows 7.

  3. Vor der Anzeige ist es nicht möglich zu wissen, ob sizeHint oder Größe angewendet werden, oder etwas anderes dazwischen. Das heißt, die Größe, die Politik scheint nicht vorhersehbar.

Beachten Sie, dass ich weiß, wie ich zum speichern/wiederherstellen der geometrie eines zuvor erstellten Fensters. Trotz QT Mängel auch hier habe ich eine funktionierende Lösung.

Beachten Sie auch, dass ich nicht verwenden können, die Standard-Fenster-manager Platzierung. Für nicht-MDI-Anwendungen auf einem multi-monitor-setup Ihre Platzierung ist schrecklich (oft nicht einmal auf dem gleichen monitor wie die Maus).

Ich möchte auch vermeiden, sub-classing alle widgets und-Dialoge nur um die Lösung implementieren, als wäre es nicht allgemein. Wenn dies der einzige mögliche Weg ist dann wäre ich bereit, ihn zu prüfen (sollten event-Filter auch nicht eine option sein).

Hat jemand gute brauchbare Lösungen?

  • Mein Aktueller Bearbeiten. Das erste edit war unsicher.
Schreibe einen Kommentar