代码之家  ›  专栏  ›  技术社区  ›  user4815162342

如何从Python调用“gdk\u frame\u clock\u get\u refresh\u info”

  •  3
  • user4815162342  · 技术社区  · 6 年前

    在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的自省规范中的一个bug吗 gdk_frame_clock_get_refresh_info ?是否有解决方法或其他方法来获取刷新间隔?

    1 回复  |  直到 6 年前
        1
  •  2
  •   user4815162342    6 年前

    这是gobject内省绑定规范中的一个bug。已提交一份适当的错误报告,并正在编写中 here