GTK 和 PYGTK 的区别
许多程序员以这种方式导入 gtk 和 pygtk:
import gtk
import pygtk
我仅使用 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()
所以...问题是: GTK 和 PYGTK 有什么区别?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
pygtk
由python-gobject
提供。gtk
由python-gtk2
提供。pygtk
提供了pygtk.require
函数,允许您要求安装特定版本的 gtk(或更高版本)。例如,只能导入
gtk
,但如果其他人的 gtk 版本较旧,您的程序可能无法在其他人的计算机上按预期运行。pygtk
is provided bypython-gobject
.gtk
is provided bypython-gtk2
.pygtk
provides thepygtk.require
function which allows you to require that a certain version of gtk (or better) is installed. For exampleimporting
gtk
only is possible, but your program may not work as expected on someone else's machine if their version of gtk is older.我对
pygtk
与gtk
感到困惑,因为我的测试应用程序与gtk
配合得很好。我现在意识到
gtk
意味着 PyGTK,包含绑定的 Python 模块到 Gtk+ 2.x 库。pygtk
是另一个模块,也是 PyGTK 的一部分,它可以(但是不需要)用于确保 Gtk+ 库的特定版本。gtk 和 pytk 模块仅适用于 Python 2。对于 Python 3,您需要通过
gi
GObject Introspection 模块。Python GObject Introspection 模块(又名
gi
或gi.repository
)是 C 库之间的中间件层(使用 GObject)和语言绑定。本质上,它从底层 C 源代码自动生成 Python 绑定。 GObject 是GLib 对象系统,其中 GLib 为用 C 语言编写的库和应用程序提供核心应用程序构建块。 GObject 提供GTK+ 具有面向对象的基于 C 的 API 和自动透明 API 绑定到其他编译或解释语言(例如 Python) 。GTK3+ 库使用 Gobject 但 GTK2+ 库不使用。这意味着您不能将 Gtk2+ 与 Python 版本 3 一起使用。
对于 Python 2,您可以使用
或仅
对于 Python 3,您需要
您可以验证版本:
对于 Gtk+ 2(Python 2 或 3)
对于 Gtk+ 3(仅限 Python 3)
I was confused by
pygtk
vsgtk
because my test app worked fine withgtk
.I now realise that
gtk
means PyGTK, the Python module that contains bindings to the Gtk+ 2.x library.pygtk
is another module, also part of PyGTK, that can (but doesn't need to) be used to ensure a certain version of the Gtk+ library.The
gtk
andpytk
modules apply to Python 2 only. For Python 3 you need to use Gtk+ through thegi
GObject Introspection module.The Python GObject Introspection module (aka
gi
orgi.repository
) is a middleware layer between C libraries (using GObject) and language bindings. Essentially it autogenerates Python bindings from the underlying C source code. GObject is the GLib Object system, where GLib provides the core application building blocks for libraries and applications written in C. GObject provides GTK+ with object-oriented C-based APIs and automatic transparent API bindings to other compiled or interpreted languages (such as Python).The GTK3+ library uses Gobject but the GTK2+ library does not. This means that you can not use Gtk2+ with Python version 3.
For Python 2 you'd use
or just
For Python 3 you need
You can verify versions with:
For Gtk+ 2 (Python 2 or 3)
For Gtk+ 3 (Python 3 only)