如何从Python调用`gdk_frame_clock_get_refresh_info`

时间:2018-03-10 19:58:20

标签: python gtk gobject-introspection

在尝试在Python 3脚本中使用GTK 3帧时钟时,我发现我不了解如何调用等效的gdk_frame_clock_get_refresh_info()。我首先尝试了显而易见的,在get_refresh_info()返回的对象上调用get_frame_clock()方法:

from gi.repository import Gtk as gtk, GLib as glib

w = gtk.Window()
w.show()
glib.idle_add(lambda: print(w.get_frame_clock().get_refresh_info()))
gtk.main()

失败了:

TypeError: Gdk.FrameClock.get_refresh_info() takes exactly 4 arguments (1 given)

C函数确实需要四个参数,但最后两个是gint64的指针。在Python版本中,该函数在使用除三个数字之外的任何内容调用时引发类型错误。当使用三个数字调用时,整个过程会因分段错误而崩溃。

这是GDK&gdk_frame_clock_get_refresh_info内省规范中的错误吗?是否有解决方法或获取刷新间隔的不同方法?

1 个答案:

答案 0 :(得分:2)

这是gobject-introspection绑定规范中的一个错误。已经提交了正确的错误报告,并且正在here上进行处理。