问题很简单,如何使用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()
显然它只是一个窗口,但是当我去尝试运行它时。我收到了这个错误。
AttributeError:'gtk.Window'对象没有属性'set_cursor'
看到错误后我意识到gt.Window无法做到,但gtk.gdk.Window会。但是,如何转换此基本窗口,以便隐藏光标。
答案 0 :(得分:6)
如the PyGTK FAQ所述,您应将光标设置在realize
信号上。如果您不等待realize
信号the gtk.gdk.window
hasn't been created yet,则无法更改光标。
所以,你可以这样做:
#!/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()