3.2 Контейнеры и расположение виджетов

Существуют два типа контейнерных виджетов в Gtk+. Все они являются подклассами абстрактного GtkContainer. Первый тип контейнерных виджетов является наследником GtkBin, а другой является абстрактным базовым классом. Наследники GtkBin могут содержать в себе только один дочерний виджет; эти контейнеры добавляют некоторую функциональность ребенку. Например, GtkButton является GtkBin'ом, который превращает ребенка в нажимаемую кнопку. GtkFrame -- это GtkBin, который рисует рельефную рамку вокруг ребенка. GtkWindow позволяет ребенку появляться в окне верхнего уровня.

Второй тип контейнерных виджетов часто имеет GtkContainer прямым родителем. Эти контейнеры могут содержать больше одного ребенка, и их предназначение -- управлять раскладкой. Управлять раскладкой -- это значит, что эти контейнеры присваивают размеры и положение виджетам, которых они содержат. Например, GtkVBox размещает своих детей в вертикальную стопку. GtkFixed позволяет вам расположить детей в произвольных координатах. GtkPacker дает вам управление раскладкой в стиле Tk.

Эта глава о втором типе контейнеров. Для того, чтобы произвести требуемую вам раскладку без фиксирования любых размерв, вы должны понимать, как их (контейнеры) использовать. Цель заключается в том, чтобы не делать предположений о размерах окна и экрана, вида виджетов, шрифтов и т.п. Ваше приложение автоматически адаптируется при изменении этих факторов.



Подсекции

Linux Land
2000-09-15