简单媒体播放器教程存在问题

简单媒体播放器教程存在问题

可能重复:
在简单播放器快速教程中遇到“gtk.RESPONSE_OK”问题

我正在按照本教程操作,但到了程序出现行问题的地方if response == gtk.RESPONSE_OK。单击“打开”,然后选择目录并单击“确定”后,会出现此问题。错误消息是“NameError:未定义全局名称‘gtk’”因此,我对其进行了研究,发现我们显然需要导入一些东西:

import pygtk
pygtk.require("2.0")
import gtk

如果我将其添加到 SimpleMediaPlayerWindow.py,那么程序根本无法运行,并出现错误消息:

/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type `PyGtkGenericCellRenderer' is smaller than the parent type's `GtkCellRenderer' class size
  from gtk import _gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion `node != NULL' failed
  from gtk import _gtk

我以为在安装过程中所有这些内容都已安装并正确配置。有什么建议吗?

顺便提一下,本教程中有一些拼写错误,可能会让读者难以理解。当从窗口中删除预先存在的容器时,它会显示两次“浏览子项列表并删除标签 1”,但第二次它实际上指的是标签 2。“在容器选项卡下查找水平窗格...”实际上应该显示“在容器选项卡下查找窗格...”(也许这在 glade 的更新版本中有所改变)。最后(到目前为止),“然后添加到您的 on_on_openbutton_clicked 函数”,该函数名称中的 on 太多了。

答案1

我遇到了同样的问题,发现正确的语法不是 if response == gtk.RESPONSE_OK。应该是if response == Gtk.ResponseType.OK。这解决了我的问题,希望它也能解决你的问题。参考:https://bugs.launchpad.net/ubuntu/+source/quickly/+bug/929572

答案2

您不应该同时导入 gtk 和 pygtk,因为它们会相互冲突。

相关内容