python3 通过 ctypes 直接使用 Gtk 编写 gui(转)_zanpen2000_新浪博客
2012-12-15 10:12
344 查看
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 库要省事得多
[此博文包含图片] (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 库要省事得多
相关文章推荐
- python使用Tkinter编写GUI
- 使用PyQt来编写第一个Python GUI程序
- 使用PyQt来编写第一个Python GUI程序
- 机器学习-python通过使用sklearn编写支持向量机SVM
- 使用PyQt来编写第一个Python GUI程序
- ctypes: 使用python调用C编写的动态链接库
- 使用PyQt来编写第一个Python GUI程序
- 使用PyQt来编写第一个Python GUI程序
- 使用PyQt来编写第一个Python GUI程序
- 使用 Python 编写 KVM 脚本,第 2 部分: 添加 GUI 来使用 libvirt 和 Python 管理 KVM
- 使用PyQt来编写第一个Python GUI程序
- 使用Delphi 编写Python Extension
- python - 如何通过GMail发送邮件:smtplib的使用
- 如何使用Python为Hadoop编写一个简单的MapReduce程序
- 使用 ctypes 进行 Python 和 C 的混合编程
- 使用python编写微信跳一跳的自动脚本
- 使用GTK编写中文软件
- 通过GET方法来发送数据时不能直接使用变量分隔符
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- 使用Python语言通过Thrift 网关操作HBase