【问题标题】:Changing the cursor when hovering a Gtk::Image悬停 Gtk::Image 时更改光标
【发布时间】:2011-11-07 19:16:06
【问题描述】:

我已经在我的应用程序中实现了一个“可点击的”Gtk::Image,方法是将它包装在一个 Gtk::EventBox 中并观察按钮按下事件。

我现在想在图像悬停时将鼠标光标变为手形,但我找不到方法。我尝试使用 get_window()->set_cursor()。但是 Gtk::Image 和 Gtk::EventBox 都返回一个空指针(这可能并不奇怪)。

如何在图像悬停时更改光标?

【问题讨论】:

    标签: c++ gtk cursor mouse


    【解决方案1】:

    为我工作:

    #! /usr/bin/env python
    
    import gtk
    
    window = gtk.Window ()
    box = gtk.EventBox ()
    image = gtk.image_new_from_file ('trollface.jpg')
    
    window.add (box)
    box.add (image)
    
    window.show_all ()
    window.present ()
    image.window.set_cursor (gtk.gdk.Cursor (gtk.gdk.HAND1))
    
    window.connect ('destroy', lambda *ignored: gtk.main_quit ())
    
    gtk.main ()
    

    我想它在 Gtkmm 和 PyGTK 中是一样的。

    【讨论】:

    • 谢谢,它对我不起作用的原因是图像必须在 get_window() 返回之前“实现”。从“实现”信号调用 set_cursor 工作正常。