Fenster nur ausblenden statt schließen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
lunar

Sonntag 23. März 2008, 16:04

philonous hat geschrieben:Lieg ich wenigstens diesesmal richtig, wenn ich vermute, dass man dazu irgendwie den Windowmanager ansprechen muss? ;)
Ja. Qt4 kann dem Fenstermanager nur "empfehlen", dass er das Fenster in den Vordergrund holt. Allerdings tust du genau das mit activateWindow. Wenn das trotzdem nicht funktioniert, dann liegt das eher an den Einstellungen des Fenstermanagers. KWin z.B. besitzt einer Funktion, um die Aktivierung zu verhindern (Kontrollzentrum -> Arbeitsfläche -> Fenstereigenschaften -> Erweitert -> Vorbeugung gegen unerwünschte Aktivierung). Bei mir steht diese Einstellung auf "normal", so dass das Fenster nicht in der Vordergrund geholt wird, sondern ebenfalls nur in der Taskleiste blinkt. Setze ich die Einstellung auf "keine", dann erscheint das Fenster im Vordergrund.
Benutzeravatar
philonous
User
Beiträge: 11
Registriert: Mittwoch 19. März 2008, 19:36

Sonntag 23. März 2008, 17:38

lunar hat geschrieben:Setze ich die Einstellung auf "keine", dann erscheint das Fenster im Vordergrund.
Verdammt. Bei mir funktioniert das auch mit dieser Umstellung nicht. Der einzige Unterschied ist dann, dass es nun auch nicht mehr blinkt ... :roll:
Unter fluxbox dagegen funktioniert es tadellos.

Gibt es eine einfache Möglichkeit direkt den WindowManager anzusprechen - etwa in der Art des Programms wmctrl?
lunar

Sonntag 23. März 2008, 17:43

philonous hat geschrieben:
lunar hat geschrieben:Setze ich die Einstellung auf "keine", dann erscheint das Fenster im Vordergrund.
Verdammt. Bei mir funktioniert das auch mit dieser Umstellung nicht. Der einzige Unterschied ist dann, dass es nun auch nicht mehr blinkt ... :roll:
Seltsam, bei mir geht es dann. Rufst du die activateWindow Methode des MainWidgets auch wirklich auf?
Gibt es eine einfache Möglichkeit direkt den WindowManager anzusprechen - etwa in der Art des Programms wmctrl?
Möglich, allerdings halte ich nicht viel davon, Programme an den Window-Manager zu binden.
Benutzeravatar
philonous
User
Beiträge: 11
Registriert: Mittwoch 19. März 2008, 19:36

Sonntag 23. März 2008, 18:17

lunar hat geschrieben:
philonous hat geschrieben:
lunar hat geschrieben:Setze ich die Einstellung auf "keine", dann erscheint das Fenster im Vordergrund.
Verdammt. Bei mir funktioniert das auch mit dieser Umstellung nicht. Der einzige Unterschied ist dann, dass es nun auch nicht mehr blinkt ... :roll:
Seltsam, bei mir geht es dann. Rufst du die activateWindow Methode des MainWidgets auch wirklich auf?
Ja, tu ich. Unter fluxbox funktioniert es auch einwandfrei. Bei KDE bzw. kwin dagegen wird zwar das kleine Fenster aktiv ("blinken"), allerdings kommt es auch mit den veränderte Einstellungen nicht in der Vordergrund :(
lunar hat geschrieben:
Gibt es eine einfache Möglichkeit direkt den WindowManager anzusprechen - etwa in der Art des Programms wmctrl?
Möglich, allerdings halte ich nicht viel davon, Programme an den Window-Manager zu binden.
Hmm. Für so ganz ideal halt ich das auch nicht - in diesem Fall aber weiß ich nicht recht, wie ich es anders noch lösen kann.
lunar

Sonntag 23. März 2008, 18:27

philonous hat geschrieben:
lunar hat geschrieben:
philonous hat geschrieben:
lunar hat geschrieben:Setze ich die Einstellung auf "keine", dann erscheint das Fenster im Vordergrund.
Verdammt. Bei mir funktioniert das auch mit dieser Umstellung nicht. Der einzige Unterschied ist dann, dass es nun auch nicht mehr blinkt ... :roll:
Seltsam, bei mir geht es dann. Rufst du die activateWindow Methode des MainWidgets auch wirklich auf?
Ja, tu ich. Unter fluxbox funktioniert es auch einwandfrei. Bei KDE bzw. kwin dagegen wird zwar das kleine Fenster aktiv ("blinken"), allerdings kommt es auch mit den veränderte Einstellungen nicht in der Vordergrund :(
Welche KDE Version hast du denn? Bei mir rennt 3.5.9, und das tut prima.
Benutzeravatar
philonous
User
Beiträge: 11
Registriert: Mittwoch 19. März 2008, 19:36

Sonntag 23. März 2008, 18:46

lunar hat geschrieben:Welche KDE Version hast du denn? Bei mir rennt 3.5.9, und das tut prima.
Bei mir ist es 3.5.8 (Debian testing).

Ich hab jetzt auch noch rumprobiert mit "Spezielle Einstellungen für dieses Programm" im Fenstermenü unter "Erweitert". Aber auch das "frisst" KDE leider nicht. Das scheint aber tatsächlich eher ein spezifisches - genauer: mein eigenes ;) - Problem zu sein.

Vorsichtig gefragt: Könnte ich für Schweinereien wie der, das Ganze über den WindowManager zu machen, das xlib-Modul nutzen? 8) Aber ich weiß: ideal ist das nicht ...
lunar

Sonntag 23. März 2008, 19:00

philonous hat geschrieben:Vorsichtig gefragt: Könnte ich für Schweinereien wie der, das Ganze über den WindowManager zu machen, das xlib-Modul nutzen? 8) Aber ich weiß: ideal ist das nicht ...
Nö, denn das X-Protokoll nutzt Qt4 ja auch. Auch über X kannst du dem Fenstermanager nur Empfehlungen schicken. Was ja auch sinnvoll ist, denn manche Window-Manager kennen das Konzept von Vorder- und Hintergrundfenstern gar nicht (z.B. larswm).
Benutzeravatar
philonous
User
Beiträge: 11
Registriert: Mittwoch 19. März 2008, 19:36

Montag 24. März 2008, 16:42

Da das bloße Aktivieren (bei mir jedenfalls) leider nicht zum gewünschten Erfolg geführt hat, lös ich das ganze Problem jetzt einfach dadurch, dass ich dem Aufruf des Clients per Shortcut einfach noch einen Aufruf des wmctrl anhänge ...

So wird im Python-Code nicht rumgehackt (es sollte ja an sich funktionieren) und "mein" Problem ist damit auch beseitigt.

Danke nochmals für deine Hilfe!

Stefan
Antworten