Seite 1 von 1

Window Cursor setzen bei GTK3

Verfasst: Samstag 14. Januar 2012, 21:36
von rhersel
Die alte Methode geht mit GTK3 nicht mehr:

Code: Alles auswählen

cursor = gtk.gdk.Cursor(gtk.gdk.HAND2)      # get a cursor
gdk_window = self.window.window             # get the gdk Window
gdk_window.set_cursor(cursor)               # set the cursor
Wenn ich es so mache:

Code: Alles auswählen

cursor = Gdk.Cursor.new(Gdk.CursorType.HAND2)
gdk_window = self.window.window
gdk_window.set_cursor(cursor)
funktioniert die erste geänderte Zeile aber 'self.window.window' geht nicht mehr. Weiss jemand wie man von einem GTK-Window das GDK-Window bekommen kann?

Re: Window Cursor setzen bei GTK3

Verfasst: Sonntag 15. Januar 2012, 10:04
von Andyh
Hallo

Soweit ich das gesehen habe schon so:
http://people.gnome.org/~johnp/girdocsa ... alize.html

Sicher das das Fenster schon ein gdk.Window hat? Sonst einfach window.realize() aufrufen.

Gruß
Andy

Re: Window Cursor setzen bei GTK3

Verfasst: Montag 16. Januar 2012, 13:57
von rhersel
GtkWindow stammt von GtkWidget ab. GtkWidget hat laut Gtk3 Dokumentation sowohl das Property 'window' als auch die Methode 'get_window'. Beides sollte das GdkWindow liefern bzw. NULL falls es noch nicht realized ist. Mein Fenster ist aber realized. Die Codezeile 'self.window.window' müsste entweder das GdkWindow oder zumindest NULL liefern. Stattdessen behauptet Python, das Objekt 'window' würde das Property 'window' nicht kennen. Ich versuche es dann mal mit der Methode: 'self.window.get_window()' und berichte dann ob es so funktioniert.

Re: Window Cursor setzen bei GTK3

Verfasst: Montag 16. Januar 2012, 18:13
von rhersel
Mit 'get_window()' funktioniert es:

Code: Alles auswählen

cursor = Gdk.Cursor.new(Gdk.CursorType.HAND2)
gdk_window = self.window.get_window()
gdk_window.set_cursor(cursor)