Подкласс большего (родительского) виджета.В методе create()
или в конструкторе добавьте виджет layout (или container ) к родительскому виджету, а затем вставьте остальные в контейнер.Теперь создайте угрозу этому новому подклассу, как если бы он был единственной, но специализированной версией его суперкласса.
A Window
- пример родительского виджета, а Fixed
- пример контейнера.Ребенком может быть EventBox
, включающий Image
.Совокупность всего этого - новый объект окна, в котором есть картинки, по которым можно щелкнуть.
В случае заголовка окна окна с фоном растрового изображения и кнопками, попробуйте Window
с контейнером Image
и Fixed
для удержания кнопок.Fixed
и Image
должны иметь возможность перекрываться, поскольку Fixed
прозрачен, а Image
не имеет Window
.
Если Buttons
действительно то, что нужно, взгляните на Кнопочные блоки и Панели инструментов в списке GTK Containers .Может быть возможно добавить Image
фон к одному из них.
Другой подход включает Alignment Widget (из того же списка).Он указывает, где меньшие виджеты расположены и пропорционально измерены.
Я предположил, ООП, но если это не так, просто организуйте создание виджетов из одной функции.Я сделал составные виджеты функционально в Haskell ( Gtk2Hs ) и в Guile Gnome Platform (с ООП и без)