【问题标题】:PyGTK Hide CursorPyGTK 隐藏光标
【发布时间】:2011-10-06 19:26:36
【问题描述】:

问题很简单,如何使用 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 会。但是如何转换这个基本窗口以便隐藏光标。

【问题讨论】:

    标签: python linux cursor pygtk hide


    【解决方案1】:

    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()
    

    【讨论】:

    • 我也这样做,但我看到了小点。 Debian 10、xord、openbox、lightdm。如何解决?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2011-05-24
    • 1970-01-01
    相关资源
    最近更新 更多