2011-07-16 130 views
3

問題是簡單的I如何隱藏使用PyGTK的活動窗口上的光標???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會。不過,我怎麼能轉換這個基本的窗口,所以它會隱藏光標。

回答

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

感謝您的幫助! –