将我的PyGtk 3应用程序移植到Win32

时间:2012-10-20 09:47:10

标签: python windows linux gtk pygtk

我最近使用Anjuta用pygtk创建了我的第一个应用程序。它在Linux下运行良好,所以是时候与亲戚和朋友分享了。我在Windows上安装了Python,pygtk和Gtk all-in-one软件包(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发行版的交叉编译器? (以复杂性/稳定性为代价?)

感谢您的时间,并回答。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

对此的最新答案是,您可以使用PyGobject packages的最新downloadable here在Windows上使用Gtk3。

然后代替使用以下(加载pygtk):

import gtk

你应该使用

from gi.repository import Gtk

如果你的代码过去依赖pygtk,你有以下选择(见the porting guide

  • 使用模块pygtkcompat(允许您继续支持Gtk 2.x)
  • 端口到内省方法,它可以通过所述移植指南pygi-convert.sh中提供的脚本进行大部分自动化(仅包含大量正则表达式替换)