GTK+ 2.0 Tutorial |
||
---|---|---|
Container Widgets |
Разделяемые окна используются когда нужно создать две части, относительного размера одного окна, контролируемые пользователем. Между частями существует специальный маркер для изменения размера частей при его захвате и перетаскивании. Разделение может быть как горизонтальным (HPaned), так и вертикальным (VPaned).
Создание нового разделённого окна:
GtkWidget *gtk_hpaned_new (void);
GtkWidget *gtk_vpaned_new (void);
|
После создания двух разделённых частей может потребоваться размещение в них дочерних виджетов. Это делается так:
void gtk_paned_add1 (GtkPaned *paned, GtkWidget *child);
void gtk_paned_add2 (GtkPaned *paned, GtkWidget *child);
|
gtk_paned_add1() добавляет дочерний виджет в левую или верхнюю часть разделённого окна. gtk_paned_add2() добавляет дочерний виджет в правую или нижнюю часть разделённого окна.
Как пример, мы создадим часть пользовательского интерфейса воображаемой почтовой программы. Окно разделено на две части вертикально, с главной частью, являющейся списком почтовых сообщений и части основания - текст почтового сообщения.
Большая часть программы достаточно проста. В ней есть несколько строк для информации в которые не может быть добавлен текст. Это могло быть выполнено вызовом функции gtk_widget_realize(), но как демонстрация дополнительной методики, мы подключаем обработчик с сигналом "realize" - добавить текст. Кроме того, мы должны добавить опцию GTK_SHRINK к некоторым из элементов в таблице, содержащей текстовое окно и его полосы прокрутки, чтобы, когда часть основания уменьшается, сжались правильные части виджета, вместо того, чтобы размешаться в основании окна.
Aspect Frames |
Viewports |