我最近使用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发行版的交叉编译器? (以复杂性/稳定性为代价?)
感谢您的时间,并回答。
答案 0 :(得分:0)
从界面中删除与GTK 2不兼容的所有小部件(例如Grid
,Overlay
等)如果你有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)
pygi-convert.sh
中提供的脚本进行大部分自动化(仅包含大量正则表达式替换)