GtkFixed
GtkFixed — Контейнер, позволяющий размещать виджеты в фиксированных координатах
Функции
| GtkWidget * | gtk_fixed_new () |
| void | gtk_fixed_put () |
| void | gtk_fixed_move () |
Типы и значения
| struct | GtkFixed |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkFixed
Реализованные интерфейсы
GtkFixed реализует AtkImplementorIface и GtkBuildable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkFixed — контейнер, который может размещать дочерние виджеты в фиксированных позициях и с фиксированными размерами, заданными в пикселях. GtkFixed не выполняет автоматическое управление макетом.
Для большинства приложений не следует использовать этот контейнер! Он избавляет вас от необходимости изучать другие контейнеры GTK+, но приводит к сбоям в приложениях. При использовании GtkFixed могут возникнуть следующие проблемы:
Стили, которые могут изменять размеры виджетов.
Шрифты, отличные от использованного при написании приложения, естественно, изменят размер виджетов, содержащих текст; имейте в виду, что пользователи могут использовать больший шрифт из-за трудностей чтения по умолчанию, или они могут использовать другую ОС, которая предоставляет разные шрифты.
Перевод текста на другие языки изменяет его размер. Кроме того, отображение текста, отличного от английского, во многих случаях будет использовать другой шрифт.
Кроме того, GtkFixed не учитывает направление текста и, следовательно, может давать нежелательные результаты, если ваше приложение запускается на языках справа налево, таких как иврит или арабский. То есть: обычно GTK+ упорядочит контейнеры соответствующим образом для направления текста, например, чтобы разместить метки справа от того, что они маркируют, при использовании языка справа налево, но он не может сделать это с GtkFixed. Поэтому, если вам нужно переупорядочивать виджеты в зависимости от направления текста, вам необходимо вручную определить его и соответствующим образом скорректировать позиции дочерних элементов.
Наконец, фиксированное позиционирование делает добавление/удаление элементов графического интерфейса довольно раздражающим, так как вам нужно перепозиционировать все остальные элементы. Это проблема долгосрочного обслуживания вашего приложения.
Если вам известно, что ни одна из этих проблем не является проблемой для вашего приложения, и вы предпочитаете простоту GtkFixed, используйте этот виджет. Но вы должны знать о компромиссах.
См. также GtkLayout, который разделяет возможность выполнять фиксированное позиционирование дочерних виджетов и дополнительно добавляет настраиваемую отрисовку и возможность прокрутки.
Функции
gtk_fixed_new ()
GtkWidget *
gtk_fixed_new (void); Создаёт новый GtkFixed.
Возвращает
новый GtkFixed.
gtk_fixed_put ()
void gtk_fixed_put (GtkFixed *fixed,GtkWidget *widget,gint x,gint y);
Добавляет виджет в контейнер GtkFixed в заданной позиции.
Параметры
fixed | объект GtkFixed. | |
widget | виджет для добавления. | |
x | горизонтальное положение для размещения виджета. | |
y | вертикальное положение для размещения виджета. |
gtk_fixed_move ()
void gtk_fixed_move (GtkFixed *fixed,GtkWidget *widget,gint x,gint y);
Перемещает дочерний элемент контейнера GtkFixed в заданную позицию.
Параметры
fixed | объект GtkFixed. | |
widget | дочерний виджет. | |
x | горизонтальное положение для перемещения виджета. | |
y | вертикальное положение для перемещения виджета. |
Типы и значения
struct GtkFixed
struct GtkFixed;
Подробности свойств дочерних элементов
Свойство дочернего элемента “x”
“x” int
Горизонтальное положение дочернего виджета.
Владелец: GtkFixed
Флаги: Чтение/Запись
Значение по умолчанию: 0
Свойство дочернего элемента “y”
“y” int
Вертикальное положение дочернего виджета.
Владелец: GtkFixed
Флаги: Чтение/Запись
Значение по умолчанию: 0
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkFixed.html