更改小部件鼠标悬停上的光标(PyGObject)

问题描述 投票:1回答:1

我一直在尝试更改Gtk.ScrolledWindow()上的光标(它有一个图像小部件)mouseover:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GdkPixbuf

class MainWindow(Gtk.Window):

  def __init__(self):
    Gtk.Window.__init__(self, title = "Test")

    self.maximize()

    grid = Gtk.Grid()
    self.add(grid)

    scrolled = Gtk.ScrolledWindow()
    scrolled.set_hexpand(True)
    scrolled.set_vexpand(True)
    scrolled.connect("motion-notify-event", self.mousemove)
    grid.add(scrolled)

    pixbuf = GdkPixbuf.Pixbuf.new_from_file("anyimage.jpg")
    image = Gtk.Image.new_from_pixbuf(pixbuf)
    scrolled.add(image)

  def mousemove(self, widget, event):
    print("Mouseover triggered")
    circle = Gdk.Cursor(Gdk.CursorType.CIRCLE)
    widget.get_window().set_cursor(circle)

win = MainWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()

事件被触发但是光标不是圆圈而是显示为带有“禁用”符号作为其下标的箭头。

我在这里错过了什么吗?

cursor gtk pygtk
1个回答
2
投票

我错了,这不是一个错误。这完全取决于使用的光标主题。我被建议坚持按名称列出的游标:

https://developer.gnome.org/gdk3/3.24/gdk3-Cursors.html#gdk-cursor-new-from-name

那些对应于CSS,并且最有可能跨光标主题可用。

© www.soinside.com 2019 - 2024. All rights reserved.