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

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

我对 quick 和 Python 都很陌生。在学习使用 Ubuntu 开发者网站上的以下教程的 quick 时,我遇到了几个问题: http://developer.ubuntu.com/resources/app-developer-cookbook/multimedia/creating-a-simple-media-player/

我无法理解以下错误:

Traceback (most recent call last):
  File "/home/sumit/Sumit/simple-player/simple_player/SimplePlayerWindow.py", line 36, in on_openbutton_clicked
    if response==gtk.RESPONSE_OK:
NameError: global name 'gtk' is not defined

我意识到我应该导入一些东西,所以我尝试添加import gtk,但没有成功,并出现了以下错误:

  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

到目前为止,我已经按照教程的每一步操作了。但是除了“prompts”和“os”之外,没有提到任何其他导入。请帮忙。


Agmenor 的贡献,面临同样的问题:

if response == gtk.RESPONSE_OK:我还尝试用if response == Gtk.RESPONSE_OK:(注意大写字母 G)替换文本。这又出现了一个错误:

AttributeError: 'gi.repository.Gtk' object has no attribute 'RESPONSE_OK'

答案1

12.04 上的当前 quick 工具包使用来自 gi.repository 的 Gtk,而不是旧版 gtk。
本教程尚未针对此更改进行更新。

这可能是你的症结所在。

输出cat SimplePlayerWindow.py
片段

from gi.repository import Gtk # pylint: disable=E0611
import logging
logger = logging.getLogger('simple_player')

/剪辑

答案2

我将“gtk.RESPONSE_OK”替换为“Gtk.ResponseType.OK”

现在一切正常。

在这里找到: http://python-gtk-3-tutorial.readthedocs.org/en/latest/dialogs.html

相关内容