0

我最近使用 Anjuta 用 pygtk 制作了我的第一个应用程序。它在Linux下运行良好,是时候分享给亲朋好友了。我在 Windows 上安装了 Python、pygtk 和 Gtk 一体化软件包(Cairo、pyGobject 等)并尝试运行它。

我有一个错误说self.builder.add_from_file(UI_FILE)

在代码中挖掘了一下,我发现我的 UI_FILE 包含

<!-- interface-requires gtk+ 3.0 -->

我的 python 控制台说:

>>> import gtk
>>> gtk.gtk_version
(2, 22, 1)

据我所知,我在我的 win32 机器上安装了最新版本的 Gtk。现在不知道怎么解决:重新设计接口兼容gtk2.22.1?(然后如何?)使用我的 linux 发行版中的交叉编译器?(复杂性/稳定性的代价是什么?)

谢谢你的时间,你回答。

4

2 回答 2

0

从您的界面中删除所有与 GTK 2 不兼容的小部件(例如GridOverlay等)。如果您有 3.8 系列的 Glade 版本,我认为您可以通过转到项目属性并选择来自动检查哪些小部件是合适的GTK 2.24 作为目标版本。然后有一个名为“验证小部件版本和弃用”的按钮,您可以单击该按钮以确保您使用的所有小部件都适用于该版本。

顺便说一句,2.22.1 绝对不是 Windows 的最新版本。它是 2.24.7 或 .8。

于 2012-10-20T14:20:27.083 回答
0

对此的最新答案是,您可以在 Windows 上使用 Gtk3,使用可在此处下载的最新PyGobject

然后而不是使用以下(加载pygtk):

import gtk

你应该使用

from gi.repository import Gtk

如果您的代码曾经依赖于 pygtk,您有以下选择(请参阅移植指南

  • 使用模块 pygtkcompat (它允许你继续支持 Gtk 2.x)
  • 移植到自省方法,可以通过所述移植指南中提供的脚本大部分自动化,pygi-convert.sh(仅包含许多正则表达式替换)
于 2015-11-12T14:30:49.510 回答