win32gui.SetForegroundWindow Äqivalent für Unix ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Freitag 24. April 2009, 07:51

Hi,
gibt es eine Funktion unter Unix, mit welcher ich meiner Applikation den Focus geben kann ? (auf Windows mit 'win32gui.SetForegroundWindow')

Gruss, Seven
Barabbas
User
Beiträge: 349
Registriert: Dienstag 4. März 2008, 14:47

Freitag 24. April 2009, 08:05

naja, das hängt doch wahrscheinlich vom Toolkit ab? Bei GTK zum Beispiel nutzt man dazu window.present()

Schöne Grüße,

Daniel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 24. April 2009, 09:23

Barabbas hat geschrieben:naja, das hängt doch wahrscheinlich vom Toolkit ab? Bei GTK zum Beispiel nutzt man dazu window.present()
Das Toolkit wrappt vermutlich sowieso nur die vorgesehenen Funktionen der NETWM-Spezifikation. Unter Unices kannst du dir aber nicht sicher sein ob das Fenster tatsächlich auch in den Fokus kommt - schließlich steht es dem WM frei, die Spezifikation zu ignorieren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 24. April 2009, 09:41

snakeseven hat geschrieben:Applikation den Focus geben
Hallo Seven!

Die "xlib" kennt die Funktion "XRaiseWindow". Ich glaube, damit könnte so etwas möglich sein. Man müsste es mal ausprobieren.

Hier die Hilfe zu XRaiseWindow: http://tronche.com/gui/x/xlib/window/XRaiseWindow.html

In diesem Beispiel http://www.python-forum.de/post-131557.html#131557 siehst du, wie man eine Referenz auf das "Display"-Objekt bekommt. Leider weiß ich nicht, wie man zu einer Referenz des "Window"-Objektes kommt, welches man anzeigen möchte.

Ziemlich wage, die Sache...

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Freitag 24. April 2009, 12:09

Sorry, unter wxPython meine ich. Aber ich werd mich mal mit XRaiseWindow beschäftigen.

Grüße, Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 24. April 2009, 13:43

snakeseven hat geschrieben:unter wxPython meine ich
Hallo Seven!

du kannst das Frame "modal" machen. Dann kommt kein anderes Fenster drüber. Habe jetzt keine Zeit mehr. Suche dir selber aus dem Code raus, was du brauchen kannst. :-)

Code: Alles auswählen

    def show_menu_frame(self):
        """
        Zeigt das Menüfenster an.
        """
        
        if DEBUG:
            log.debug("show_menu_frame (start)")
            
        # Menüfenster anzeigen
        menuframe = MenuFrame(app = self)
        self.menuframe = menuframe
        if settings.get("global_full_screen_windows"):
            menuframe.ShowFullScreen(
                True, style = wx.FULLSCREEN_ALL ^ (
                    wx.FULLSCREEN_NOSTATUSBAR | wx.FULLSCREEN_NOMENUBAR
                )
            )
        else:
            menuframe.Show()
            if settings.get("global_maximize_windows"):
                menuframe.Maximize()
        menuframe.MakeModal()
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten