xRo*_*bot 18 python gtk pygtk gtk2
许多程序员以这种方式导入gtk和pygtk:
import gtk
import pygtk
Run Code Online (Sandbox Code Playgroud)
我只使用gtk创建了一个简单的程序,它可以工作:
import gtk
window = gtk.Window()
window.set_size_request(800, 700)
window.set_position(gtk.WIN_POS_CENTER)
window.connect("destroy", gtk.main_quit)
button = gtk.Button("Vai")
button.set_size_request(30, 35)
button.connect("clicked", naviga)
testo = gtk.Entry()
h = gtk.HBox()
h.pack_start(testo)
h.pack_start(button)
window.add(h)
window.show_all()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
所以...问题是:GTK和PYGTK的区别是什么?
unu*_*tbu 16
pygtk由...提供python-gobject.
gtk由...提供python-gtk2.
pygtk提供pygtk.require允许您要求安装某个版本的gtk(或更高版本)的功能.例如
import pygtk
pygtk.require('2.0')
Run Code Online (Sandbox Code Playgroud)
gtk只能进行导入,但如果他们的gtk版本较旧,则您的程序可能无法在其他人的计算机上正常工作.
pygtk我对vs感到困惑,gtk因为我的测试应用程序与gtk.
我现在意识到这gtk意味着PyGTK ,即包含与Gtk+ 2.x 库的绑定的 Python 模块。pygtk是另一个模块,也是PyGTK的一部分,可以(但不需要)用于确保Gtk+库的某个版本。
和gtk模块pytk仅适用于 Python 2。对于 Python 3,您需要通过GObject Introspection模块使用Gtk+。gi
Python GObject Introspection模块(又名gi或)是 C 库(使用GObjectgi.repository )和语言绑定之间的中间件层。本质上,它从底层 C 源代码自动生成 Python 绑定。GObject是GLib对象系统,其中GLib为用 C 编写的库和应用程序提供了核心应用程序构建块。GObject为GTK+提供了面向对象的基于 C 的 API 以及与其他编译或解释语言(例如 Python)的自动透明 API 绑定。
GTK3+ 库使用Gobject,但 GTK2+ 库不使用。这意味着您不能将 Gtk2+ 与 Python 版本 3 一起使用。
对于 Python 2 你会使用
import pygtk
pygtk.require('2.0')
import gtk
Run Code Online (Sandbox Code Playgroud)
要不就
import gtk
Run Code Online (Sandbox Code Playgroud)
对于 Python 3 你需要
import gi
gi.require_version('Gtk','3.0')
from gi.repository import Gtk
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式验证版本:
对于 Gtk+ 2(Python 2 或 3)
print("PyGTK %d.%d.%d Gtk+ %d.%d.%d" % (gtk.pygtk_version + gtk.gtk_version))
Run Code Online (Sandbox Code Playgroud)
对于 Gtk+ 3(仅限 Python 3)
print("Gtk %d.%d.%d" % (Gtk.get_major_version(),
Gtk.get_minor_version(),
Gtk.get_micro_version()))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4388 次 |
| 最近记录: |