【问题标题】:Using python ctypes invoke gtk_builder使用 python ctypes 调用 gtk_builder
【发布时间】:2013-10-10 15:38:37
【问题描述】:

我的python代码是:

gtk = CDLL('/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so')
builder = gtk.gtk_builder_new()
print gtk.gtk_builder_add_from_file(builder, './mainui.glade', None)

我测试了 c 代码,它可以工作。但是使用 python ctype,gtk_builder_add_from_file 的结果总是 0,例如有一个错误。我很困惑..

【问题讨论】:

    标签: python gtk ctypes


    【解决方案1】:

    为什么不使用自省功能?它的存在是有原因的。

    from gi.repository import Gtk as gtk
    
    class Foo (object):
    
        def __init__(self):
            self.builder = gtk.Builder()
            self.builder.add_from_file("someui.glade")
            self.builder.connect_signals(self)
    
        def run(self, *args):
            self.builder.get_object("mainwindow").show()
            gtk.main()
    
        def quit(self, *args):
            gtk.main_quit()
    
    
    Foo().run()
    

    如果这不是一个选项,请传递 GError ** 而不是 none 以获取有关该问题的更多信息(可能在您的 *.glade 文件中或缺少权限)

    【讨论】:

    • 谢谢你的帮助,但是我想在ARM上运行这段代码,交叉编译gi真的太难了。
    • 不是,只要使用 buildroot 之类的东西——手动交叉编译就是 PITA。
    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多