Seite 1 von 1

QWidget im Vordergrund bei 'refresh'

Verfasst: 5. April 2017 16:19
von alainstgt
ich möchte bei einem bestimmten Ereignis (selbst programmiertes Alarm event) ein bereits vorhandenes Widget ontop *aller* geöffneten Fenster bringen. Danach soll der User auf das Fenster einer anderen Anwendung klicken können und das zuvor genannte Widget wird wieder überlappt.
Folgender Code funktioniert wenn das Fenster noch nicht existiert:

Code: Alles auswählen

show();
raise();
activateWindow();
aber nicht wenn das Fenster schon existiert.

Das Flag

Code: Alles auswählen

WindowsFlag Qt::WindowsStaysOnTopHint
bringt das Widget im Vordergrund, aber für immer, was ich nicht will.

Gibt es eine Lösung zu meinem Problem, sprich ein Widget kurzfristig im Vordergrund aller Fenster zu stellen, welches aber dann wieder überlappt werden kann sofern ein anderes Fenster wieder den Focus bekommt?

Ich habe es auch mit

Code: Alles auswählen

setFocus();
probiert, ohne Erfolg!

Re: QWidget im Vordergrund bei 'refresh'

Verfasst: 5. April 2017 16:58
von Christian81
Laut Doku geht es unter Windows auch nicht wirklich
http://doc.qt.io/qt-5/qwidget.html#activateWindow
On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.

Re: QWidget im Vordergrund bei 'refresh'

Verfasst: 5. April 2017 23:53
von alainstgt
Danke Christian, habe ich übersehen!