zoukankan      html  css  js  c++  java
  • 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 库要省事得多
  • 相关阅读:
    对虚机设备Bridge ,Vlan, VETH, TAP详细介绍
    DevStack部署Openstack环境
    Ubuntu配置 PPTP 服务器端
    Ubuntu 配置PPTP客户端
    Git学习笔记
    Mysql安装随记,整理内容来源网络
    GitHub访问慢的优化处理
    NetCore部署到Linux服务器+Supervisor的步骤及过程中踩过的坑
    JavaScript的定时器如何先触发一次再延时
    在实现文本框只能输入数字和小数点的基础上实现了价格样式(保留两位小数)
  • 原文地址:https://www.cnblogs.com/lexus/p/2818974.html
Copyright © 2011-2022 走看看