PyGTK隐藏光标

Mic*_*rtz 2 python linux pygtk cursor hide

问题很简单如何使用PyGTK将光标隐藏在活动窗口上?

这是我用来学习这个的基本应用程序......

#!/usr/bin/env python

import gtk

class app:

  def __init__(self):
    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    window.set_title("TestApp")
    window.set_default_size(400,200)
    pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
    color = gtk.gdk.Color()
    cursor = gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
    window.set_cursor(cursor)
    window.connect("destroy", gtk.main_quit)    
    window.show_all()

app()
gtk.main()
Run Code Online (Sandbox Code Playgroud)

显然它只是一个窗口,但是当我去尝试运行它时.我收到了这个错误.

AttributeError:'gtk.Window'对象没有属性'set_cursor'

看到那个错误后我意识到gt.Window将无法做到,但gtk.gdk.Window会.但是,如何转换此基本窗口,以便它将隐藏光标.

dum*_*ter 5

PyGTK FAQ所述,您应该将光标设置在realize信号上.如果您不等待realize信号,gtk.gdk.window尚未创建,因此您无法更改光标.

所以,你可以这样做:

#!/usr/bin/env python

import gtk

class app:

  def __init__(self):
    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    window.set_title("TestApp")
    window.set_default_size(400,200)
    window.connect("realize", self.realize_cb)
    window.connect("destroy", gtk.main_quit)    
    window.show_all()

  def realize_cb(self, widget):
    pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
    color = gtk.gdk.Color()
    cursor = gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
    widget.window.set_cursor(cursor)

app()
gtk.main()
Run Code Online (Sandbox Code Playgroud)