1

似乎当我在 GJS 中调用 Gdk.Seat.grab() 时出现错误:

Gjs-WARNING **: JS ERROR: TypeError: Gdk.Seat.grab is not a function

这个函数和类在 GJS Docs 中列出,但也许我说错了?如果我打电话typeofGdk.Seat.grab它就会回来undefined。这是不可能的,还是有另一种方法可以让我以这种方式抓住焦点?

我的用例是从用户那里收集一个键绑定,我可以使用它Gtk.CellRendererAccel,但我不想使用Gtk.TreeView. 文档对 CellRenderers 说:

这些对象主要由 GtkTreeView 小部件使用,尽管它们没有以任何特定方式与它们绑定。

和...

GtkCellRenderer 的主要用途是在 cairo_t 上绘制某些图形元素。

这意味着我可以在 TreeView 之外使用它,但没有关于如何使用的提示。

4

1 回答 1

2

grab()是 的一个方法Gdk.Seat,所以你需要一个Gdk.Seat对象来调用它。看起来您将其称为静态方法,Gdk.Seat.grab(). 所以,你需要类似Gdk.DeviceManager.get().get_default_display().get_default_seat()的东西,或者你可以Gdk.SeatGdk.Event.

从所描述的用例中不清楚您要对抓取做什么,但可能有一种更简单的方法来完成它。

于 2017-09-02T20:22:44.127 回答