2011-07-16 11 views
3

質問は簡単です。どうすれば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」オブジェクトは、私はgt.Windowはそれを行うことはできませんが、gtk.gdk.Window意志実現し、そのエラーを見た後何の属性「set_cursor」

を持っていません。しかし、どのようにしてこの基本ウィンドウを変換してカーソルを隠すことができますか?

答えて

6

the PyGTK FAQに記載されているように、realize信号にカーソルを設定する必要があります。信号realizethe 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

ありがとう:

だから、あなたのような何かを行うことができます! –