我对 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