Seite 1 von 1
win32gui.SetForegroundWindow Äqivalent für Unix ?
Verfasst: Freitag 24. April 2009, 07:51
von snakeseven
Hi,
gibt es eine Funktion unter Unix, mit welcher ich meiner Applikation den Focus geben kann ? (auf Windows mit 'win32gui.SetForegroundWindow')
Gruss, Seven
Verfasst: Freitag 24. April 2009, 08:05
von Barabbas
naja, das hängt doch wahrscheinlich vom Toolkit ab? Bei GTK zum Beispiel nutzt man dazu
window.present()
Schöne Grüße,
Daniel
Verfasst: Freitag 24. April 2009, 09:23
von Leonidas
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.
Re: win32gui.SetForegroundWindow Äqivalent für Unix ?
Verfasst: Freitag 24. April 2009, 09:41
von gerold
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

Verfasst: Freitag 24. April 2009, 12:09
von snakeseven
Sorry, unter wxPython meine ich. Aber ich werd mich mal mit XRaiseWindow beschäftigen.
Grüße, Seven
Verfasst: Freitag 24. April 2009, 13:43
von gerold
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
