PyGTK: встроить окно в другое окно - PullRequest
1 голос
/ 02 февраля 2011

Я хочу встроить окно в другое окно, примерно так:
РЕДАКТИРОВАТЬ: Снимки экрана удалены, извините!
Это программа wingdows, которая не была создана с жесткой GTK.вилки и розетки, но, очевидно, я не могу поставить gtk.Window (окно верхнего уровня) на вилку.

Возможно ли это?Если так, то как?Если нет, то как вы думаете, что я должен сделать вместо этого?

1 Ответ

2 голосов
/ 02 февраля 2011

gtk.Window является производным от gtk.Bin, поэтому он может содержать только одного дочернего элемента.Это снова можно использовать следующим образом:

  • Загрузить оба окна (например, из файлов Glade)
  • Удалить дочерний элемент из второго окна, но сохранить ссылку на дочерний элемент
  • Добавить ребенка где-то в первом окне

Второй шаг будет выглядеть следующим образом:

childWidget = secondWindow.get_child()
secondWindow.remove(childWidget)

Я использую этот подход для добавления окон плагинов каквкладки в одном из моих приложений PyGTK.Это означает, что главное окно и плагины могут быть спроектированы отдельно в Glade, а также реализованы независимо.Конечно, вы можете добавить дочерний виджет куда угодно.

...