QWidget im Vordergrund bei 'refresh'

Alles rund um die Programmierung mit Qt
Antworten
alainstgt
Beiträge: 19
Registriert: 22. August 2008 11:37
Wohnort: Stuttgart

QWidget im Vordergrund bei 'refresh'

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QWidget im Vordergrund bei 'refresh'

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
alainstgt
Beiträge: 19
Registriert: 22. August 2008 11:37
Wohnort: Stuttgart

Re: QWidget im Vordergrund bei 'refresh'

Beitrag von alainstgt »

Danke Christian, habe ich übersehen!
Antworten