LINUX.ORG.RU

Не могу разобраться в PyGI

 ,


0

1

Понадобилось написать небольшое приложение с графическим интерфейсом, выбрал GTK. Смотрю туториалы тут, попутно читая API тут. Проблема возникает на Gtk.ListBox()

Traceback (most recent call last):
  File "gtk-libs.py", line 56, in <module>
    win = ListBoxWindow()
  File "gtk-libs.py", line 12, in __init__
    listbox = Gtk.ListBox()
  File "/usr/lib/python3/dist-packages/gi/module.py", line 243, in __getattr__
    return getattr(self._introspection_module, name)
  File "/usr/lib/python3/dist-packages/gi/module.py", line 105, in __getattr__
    self.__name__, name))

AttributeError: 'gi.repository.Gtk' object has no attribute 'ListBox'
. Хотя он _есть_. ЧЯДНТ?


Ответ на: комментарий от true_admin

Пытаюсь проделать то же самое:

>>> from gi.repository.Gtk import ListBox
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: sys.path must be a list of directory names
Почему же например с контейнером Grid или Box все в норме?

z00ke ()
Последнее исправление: z00ke (всего исправлений: 1)
Ответ на: комментарий от true_admin

Elementary Luna(Ubuntu 12.04 по сути). ставил пакет python3-gi. Сразу подумал об этом, поэтому попробовал еще на ноутбуке, где стоит 13.10, абсолютно та же проблема. Сейчас попробую вручную собрать.

z00ke ()
Последнее исправление: z00ke (всего исправлений: 1)
Ответ на: комментарий от true_admin

Да, что-то работает, как я сказал выше, например Gtk.Box или Grid из контейнеров, кнопки, лабелы всякие, т.е. базовые вещи. gtk 3.4.0 python 3.2.3

z00ke ()
Ответ на: комментарий от Siado

Про pip забыл, сейчас попробую. // Попробовал, там же совсем старая версия, не?

z00ke ()
Последнее исправление: z00ke (всего исправлений: 1)

а что на это ответит?

import gi.repository.Gtk
print(gi.repository.Gtk)
for i in dir(gi.repository.Gtk):
  if 'ListBox' in i:
    cur = getattr(gi.repository.Gtk, i)
    print("%40s - %s" % (i, cur))

anonymous ()

потому что

from gi.repository import Gtk

anonymous ()
Ответ на: комментарий от true_admin

Да, это весь вывод. Но там ведь еще проверка на вхождение есть, так что неудивительно.

z00ke ()
Последнее исправление: z00ke (всего исправлений: 1)
Ответ на: комментарий от anonymous

Хм, теперь кажется я все понял. Тред можно считать решенным.

z00ke ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.