![](/img/trans.png)
[英]How to set an GTK Entry as an default active element in Python GTK2
[英]How to port Python program from gtk2 to gtk3?
我们正在尝试将该程序从gtk2移植到gtk3。 当我尝试pygi-convert.sh
,出现以下错误:
Traceback (most recent call last):
File "scripts/amir", line 53, in <module>
from gi.repository import GObject
File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 39, in <module>
raise ImportError(_static_binding_error)
ImportError: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183
有什么建议或其他方式可以进行此移植吗?
首先,尝试了解您在做什么。 阅读GTK + 3官方Python的基础教程 。 您会看到执行导入的正确顺序是:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
pygi-convert.sh
不是灵丹妙药,您必须了解更改并进行检查。 例如, 本节中的进口肯定是错误的。 顺序不正确,并且import gtk,Gtk.glade
行上还剩下一个import gtk
。 git grep -w gtk
应该可以帮助您找到代码中所有小写的gtk
出现,应将其删除或替换。
我还看到您在同一文件中有一些代码可以更改窗口主题。 在GTK + 2和GTK + 3之间完全改变了主题。GTK + 3使用CSS引擎。
查看Python GTK + 3 API以了解可用的内容,并检查C迁移指南(对此尚不了解python资源,对不起) ,GTK + 2和GTK + 3之间发生了什么变化 。 大多数事情不适用于python,但是有些事情会适用。 例如,在进行自定义绘制或检查哪些小部件已被杀死和替换时,从旧的expose-event
迁移到draw
信号。
然后尝试运行,修复错误,冲洗,然后重复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.