python3 通过 ctypes 直接使用 Gtk 编写 gui(转)_zanpen2000_新浪博客

python3 通过 ctypes 直接使用 Gtk 编写 gui(转)_zanpen2000_新浪博客

    python3 通过 ctypes 直接使用 Gtk 编写 gui(转)
    [此博文包含图片] (2009-09-14 12:14:09)
    转载▼
    标签:
    python3
    ctyps
    gtk
    gui
    it
        分类: python

    本文来自:python吧

    Python3 现在还缺少许多 Python2 里可用的 C 库,如常见的 PyGtk 不过既然 Python2.5 以后就自带了 ctypes ,所以也可以无须传统的 PyGtk 库, 而直接用 ctypes 干 GUI

    先看个简单的 Gtk 窗口

    teswindow.py

    #!/usr/bin/python3



    # -*- coding: UTF-8 -*-



    import ctypes



    gobject = ctypes.CDLL('/usr/lib/libgobject-2.0.so')



    gtk = ctypes.CDLL('/usr/lib/libgtk-x11-2.0.so')



    gobject.g_type_init ()



    gtk.gtk_init(None, None)



    win = gtk.gtk_window_new(0)



    gtk.gtk_window_set_title(win, ctypes.c_char_p("Gtk TextView"))



    gtk.gtk_window_set_default_size(win, 750, 500)



    view = gtk.gtk_text_view_new()



    gtk.gtk_container_add(win, view)



    gtk.gtk_widget_show_all(win)



    gtk.gtk_main()



    没有使用旧的 PyGtk 库就创建了一个带有文本编辑区的窗口(这代码也可以在 python2.5、2.6 下执行)





    再来点额外的库,比如最近很热的 WebKit, 试试 teswebkit.py

    #!/usr/bin/python3



    # -*- coding: UTF-8 -*-







    import ctypes



    gobject = ctypes.CDLL('/usr/lib/libgobject-2.0.so')



    gthread = ctypes.CDLL('/usr/lib/libgthread-2.0.so')



    gtk = ctypes.CDLL('/usr/lib/libgtk-x11-2.0.so')



    webkit = ctypes.CDLL('/usr/lib/libwebkit-1.0.so')







    gthread.g_thread_init(None)



    gobject.g_type_init()



    gtk.gtk_init(None, None)







    win = gtk.gtk_window_new(0)



    gtk.gtk_window_set_title(win, ctypes.c_char_p("Gtk WebKit"))



    gtk.gtk_window_set_default_size(win, 750, 500)







    view = webkit.webkit_web_view_new ()



    webkit.webkit_web_view_open(view, ctypes.c_char_p("http://www.google.cn/"))







    scrolled = gtk.gtk_scrolled_window_new(None, None)



    gtk.gtk_container_add(scrolled, view)



    gtk.gtk_container_add(win, scrolled)







    gtk.gtk_widget_show_all(win)







    #gtk.gdk_threads_enter()



    gtk.gtk_main()

    这是一个嵌入了 WebKit 浏览器的窗口,显示了 谷歌 主页

    
    python3 <wbr>通过 <wbr>ctypes <wbr>直接使用 <wbr>Gtk <wbr>编写 <wbr>gui(转)




    似乎,我们可以不再需要像以前给 PyGtk、PyWebKit 干的那样,特意去用一套很复杂的方法来生成绑定了, 旧的方法不仅费时费力,没绑定好的库还没法去使用。

    虽然上边的代码显得非常不 pythonic,不过再用一层纯 python 代码来包装成 python 对象, 也是比创建专门的 C 库要省事得多
原文地址:https://www.cnblogs.com/lexus/p/2818974.html