Seite 1 von 1
Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 07:17
von Karsten Böhme
Hallo zusammen,
ich versuche aus meiner Anwendung heraus eine Widget auf dem Desktop anzuzeigen, auch wenn sich meine Anwendung gerade im Hintergrund befindet.
Mit
Code: Alles auswählen
wnd.setWindowFlags(wnd.windowFlags() | Qt.WindowStaysOnTopHint)
erreiche ich das leider nicht.
Habe schon kräftig gegoogled, war jedoch bis jetzt nicht fündig.
Kann mir da jemand weiterhelfen ?
Danke!
Viele Grüße
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 09:57
von sparrow
Die Entscheidung, welches Fenster wie und in welchem Layer angezeigt wird, trifft der Window-Manager. Nicht deine Anwendung.
Das ist auch gut so, denn als Benutzer möchte ich nicht, dass Anwendungen das können.
Über welchen Window-Manager bzw. über welches Betriebssystem sprechen wir?
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 10:06
von Karsten Böhme
Wir sprechen über Windows 11.
Es muss allerdings möglich sein, denn es gibt immer wieder Anwendungen, welche ein Fenster als Hinweis über allem anzeigen können. Das ist auch gut so, schließlich gibt es Infos, welche angezeigt werden müssen, obwohl die auslösende Anwendung gerade von einer anderen Anwendung verdeckt werden kann (eben wie in meinem Fall) !
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 10:13
von sparrow
Die Meinung, dass das gut ist, teile ich nicht.
Mein letzter Kentnissstand ist, dass Microsoft es explizit erschwert genau das Verhalten auszulösen. Wird ein Fenster aktiviert, das nicht zu dem Prozes gehört, in dem der Benutzer gerade arbeitet, wird das durch in der Taskleiste dadurch angezeigt, das das Fenster als "hier passiert etwas" markiert wird.
_Das_ ist gut so. Denn es wäre eine gar grausige Welt, in der es möglich wäre jede Sekunde ein anderes Fenster aktiv zu schalten, während ich in einem ganz anderen Programm arbeite.
Du kannst noch versuchen das Fenster mit "activateWindow" oder "show" nach vorne zu holen - je nachdem welchen Zustand sie vorher hatten.
Ich würde aber empfehlen den Weg über die OS-Notifcations zu nehmen.
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 10:21
von Karsten Böhme
Okay, ich werde mir mal alle Vorschläge anschauen.
Zum Verständnis, es handelt sich um 'eine Art' Messagebox, die von meiner Anwendung über wnd.exec() aufgerufen wird. Die Taskleiste ist mir allerdings zu wenig. Der das System nutzende Kollege soll SOFORT informiert werden. Es ist nun mal so.
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 10:25
von sparrow
Du musst dich nicht rechtfertigen.
Am Ende entscheidet es hoffentlich der Fenstermanager, der das Verhalten unterbindet.
Ich stelle mir gerade vor, wir der Kollege intensiv an etwas arbeitet und dann das nervige "pling pling" des Fehlersounds, weil dort, wo er tippen will, gar keine Eingabe erwartet wird, sondern ein Message-Fenster aufgetaucht ist.
Oder noch besser. Wie er ein Passwort eingeben will und das dann in der anderen Anwendung landet.
Deshalb möchte _ich_ solche Anwendungen sicher nicht haben.
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 10:30
von Karsten Böhme
Es handelt sich um eine Leitstelle. Da gibt es Prioritäten. Du sollst so eine Anwendung auch nicht bekommen.
Warum kommt dieses Forum nicht ohne diesen überheblichen Ton Anderen gegenüber aus ! Schade !
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 11:13
von Axel-WAK
Eigentlich sollte das genügen (in PyQt5)
in PyQt6
Code: Alles auswählen
wnd.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 11:42
von Karsten Böhme
Vielen Dank,
ich probiere es gleich aus. Habe PySide6 also im Prinzip analog PyQt6.
Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 11:55
von Karsten Böhme
klappt leider nicht. Also weitersuchen

Re: Widget auf dem Desktop übel ALLEN anderen Anwendungen anzeigen
Verfasst: Samstag 10. Dezember 2022, 12:30
von Karsten Böhme
@Axel-WAK :
Es funktioniert doch ! Hatte es in der __init__ weiter unten durch
überschrieben.
Jetzt :
Code: Alles auswählen
self.setWindowFlags(Qt.WindowSystemMenuHint | Qt.WindowType.WindowStaysOnTopHint)
Vielen Dank !