перекрывающиеся виджеты GTK - PullRequest
2 голосов
/ 15 ноября 2010

Как сделать так, чтобы виджеты перекрывали друг друга.

Самое низкое значение должно быть изображением, остальные - это другие виджеты, например кнопки.

alt text

1 Ответ

4 голосов
/ 15 ноября 2010

Подкласс большего (родительского) виджета.В методе 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 (с ООП и без)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...