Форум сайта python.su
Здравствуйте.
Программирую на питон 3.5 форму создаю на glade - gdk3 проблема в следующем,
если создать дополнительные окна, первый раз они открываются нормально
со всеми элементами, но если нажать на заголовке кнопку закрыть
следующий раз форма вызывается пустой.
Можно конечно создать свои формы и выставить не показывать кнопку закрыть
на заголовке и добавить свою кнопку hide(), но я думаю это не красивый выход
тем более уверен что проблема решается достаточно просто.
Также прикрепляю файл с проектом набросанным на скорую руку.
Спасибо за внимание С уважением Максим.
Прикреплённый файлы:
test.zip (5,5 KБ)
Офлайн
Да это похоже на хрень какую-то. Возьми PyQt, там нет таких проблем.
Офлайн
py.user.nextСогласен что нет, но он так же далеко не на всех линуксах стоит , недавно столкнулся с тем что даже в минт Qt интерфейс не запустился То есть если я кому то дам эту программу ему так же надо сказать не забудь установить Qt. А вот с gdk таких проблем нет, так как на нём написано много интерфейсов.
Да это похоже на хрень какую-то. Возьми PyQt, там нет таких проблем.
Офлайн
https://ru.wikipedia.org/wiki/PyGTK
GTK+ реализован на языке C и имеет собственную (не интегрированную в полной мере с Python) систему учёта ссылок между GObject-объектами для удаления более не используемых GTK-объектов (то есть для обработки этих объектов системой сборки мусора GObject).В этом, похоже, проблема. Там что-то само может уничтожаться, поэтому и выглядит, как ошибка неизвестной природы.
Как следствие этого — не исключены случаи, когда ссылки на Python-объекты (например, ссылки на функции обратного вызова), сохранённые внутри GTK-объектов (то есть GObject-объектах), превращаются в слабые ссылки и могут быть удалены системой сборки мусора Python.
Следствием непредусмотренного программистом превращения ссылок в слабые ссылки могут стать ошибки при выполнении программы, когда, например, вызванная Callback-функция станет оперировать с неинициализированными данными (то есть с данными, очищенными сборщиком мусора Python).
Офлайн
> но он так же далеко не на всех линуксах стоит
Он есть во всех репах. По этому не вижу в этом большой проблемы.
Офлайн
RodegastПроблема в том что пользователи не хотят ничего ставить или прописывать им надо из коробки. Говорят скачай программу скачай Qt …. А есть и такие уж поверте мне которые вообще терминала избегают. Не все же такие как мы, правда?
> но он так же далеко не на всех линуксах стоит Он есть во всех репах. По этому не вижу в этом большой проблемы.
Офлайн
RodegastТам лицензирование может различаться. Qt хорош, пока не продаёшь прогу.
По этому не вижу в этом большой проблемы.
PhantomНу и не пиши для них ничего.
А есть и такие уж поверте мне которые вообще терминала избегают.
Отредактировано py.user.next (Дек. 28, 2017 10:50:45)
Офлайн
py.user.nextДа вообще я многого в GTK не понимаю, сделано очень через ……… По мне так должно быть объект = сигнал а там накручено по китайски всё с тем же например TreeView..
https://ru.wikipedia.org/wiki/PyGTK
[code python]self.Winmy.connect("delete-event", Gtk.main_quit)[/code]
Офлайн
> Там лицензирование может различаться. Qt хорош, пока не продаёшь прогу.
Вот по этому я используюь PySide
Офлайн
PhantomGTK - это Си библиотека, нет там никаких объектов.
По мне так должно быть объект = сигнал
Офлайн