在小部件鼠标悬停时更改光标(PyGObject)
Change cursor on widget mouseover (PyGObject)
我一直在尝试更改 Gtk.ScrolledWindow() 上的光标(其中有一个图像小部件)鼠标悬停:
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()
事件被触发,但光标显示为带有 "disabled" 符号作为其下标的箭头而不是圆圈。
我是不是遗漏了什么?
我错了,这不是错误。这完全取决于使用的光标主题。建议我坚持使用此处按名称列出的游标:
https://developer.gnome.org/gdk3/3.24/gdk3-Cursors.html#gdk-cursor-new-from-name
那些对应于 CSS 并且最有可能跨游标主题可用。
我一直在尝试更改 Gtk.ScrolledWindow() 上的光标(其中有一个图像小部件)鼠标悬停:
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()
事件被触发,但光标显示为带有 "disabled" 符号作为其下标的箭头而不是圆圈。
我是不是遗漏了什么?
我错了,这不是错误。这完全取决于使用的光标主题。建议我坚持使用此处按名称列出的游标:
https://developer.gnome.org/gdk3/3.24/gdk3-Cursors.html#gdk-cursor-new-from-name
那些对应于 CSS 并且最有可能跨游标主题可用。