Возможный дубликат:
Проблема с «gtk.RESPONSE_OK» в быстром руководстве по простому плееру
Я следую этому руководству, но дошел до точки остановки, когда у программы возникла проблема со строкой if response == gtk.RESPONSE_OK
. Это происходит после нажатия кнопки «Открыть», затем выбора каталога и нажатия кнопки «ОК». Сообщение об ошибке: «NameError: глобальное имя 'gtk' не определено». Я исследовал его и обнаружил, что, по-видимому, нам нужно импортировать пару вещей:
import pygtk
pygtk.require("2.0")
import gtk
Если я добавлю это в SimpleMediaPlayerWindow.py, то программа выиграет ' t не запускается, выдает сообщение об ошибке:
/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
Я думал, что все эти вещи были установлены и настроены правильно во время быстрой установки. Есть предложения?
Кстати, в учебнике есть несколько опечаток, которые могут затруднить восприятие.При удалении ранее существовавших контейнеров из окна он дважды говорит: «Перейдите по списку дочерних элементов и удалите label1», но во второй раз фактически ссылается на label2. «Найти горизонтальные панели на вкладке« Контейнеры »...» на самом деле следует читать «Найти панорамы на вкладке« Контейнеры »...» (возможно, это изменилось в обновленной версии glade). И наконец (пока): «Затем добавьте к вашей функции on_on_openbutton_clicked» в имени этой функции когда-то было слишком много включений.
Вы не должны импортировать и gtk, и pygtk, так как они вызовут конфликты друг с другом.
Я столкнулся с той же проблемой и обнаружил, что правильный синтаксис не if response == gtk.RESPONSE_OK
. Это должно быть if response == Gtk.ResponseType.OK
. Это решило мою проблему и надеюсь, что это решит и вашу. Ссылка: https://bugs.launchpad.net/ubuntu/+source/quickly/+bug/929572