GtkFixed
GtkFixed — Контейнер, позволяющий размещать виджеты в фиксированных координатах
Функции
| GtkWidget * | gtk_fixed_new () |
| void | gtk_fixed_put () |
| void | gtk_fixed_remove () |
| void | gtk_fixed_move () |
| void | gtk_fixed_get_child_position () |
| GskTransform * | gtk_fixed_get_child_transform () |
| void | gtk_fixed_set_child_transform () |
Типы и значения
| struct | GtkFixed |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkFixed
Реализованные интерфейсы
GtkFixed реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы
#include <gtk/gtk.h>
Описание
Виджет GtkFixed — это контейнер, который может размещать дочерние виджеты в фиксированных позициях и с фиксированными размерами, заданными в пикселях. GtkFixed не выполняет автоматическое управление макетом.
Для большинства приложений вам не следует использовать этот контейнер! Он избавляет вас от необходимости изучать другие контейнеры GTK+, но приводит к ошибкам в приложениях. С GtkFixed следующие вещи могут привести к обрезке текста, наложению виджетов и другим отображаемым ошибкам:
Темы, которые могут изменять размеры виджетов.
Шрифты, отличные от используемого вами при написании приложения, безусловно, изменят размер виджетов, содержащих текст; имейте в виду, что пользователи могут использовать больший шрифт из-за трудностей с чтением стандартного, или они могут использовать другую ОС, которая предоставляет другие шрифты.
Перевод текста на другие языки изменяет его размер. Кроме того, отображение текста, отличного от английского, во многих случаях будет использовать другой шрифт.
Кроме того, GtkFixed не учитывает направление текста и, следовательно, может давать нежелательные результаты, если ваше приложение выполняется на языках с письмом справа налево, таких как иврит или арабский. То есть, обычно GTK упорядочивает контейнеры в соответствии с направлением текста, например, чтобы размещать метки справа от того, что они маркируют, при использовании языка справа налево, но с GtkFixed это невозможно. Поэтому, если вам нужно переупорядочить виджеты в зависимости от направления текста, вам нужно будет вручную его обнаружить и соответствующим образом настроить позиции дочерних элементов.
Наконец, фиксированное позиционирование делает добавление/удаление элементов графического интерфейса довольно утомительным, так как вам нужно перепозиционировать все остальные элементы. Это проблема долгосрочного технического обслуживания вашего приложения.
Если вы знаете, что ни одна из этих вещей не является проблемой для вашего приложения, и предпочитаете простоту GtkFixed, используйте этот виджет. Но вы должны понимать компромиссы.
Функции
gtk_fixed_new ()
GtkWidget *
gtk_fixed_new (void); Создаёт новый GtkFixed.
Возвращаемое значение
новый GtkFixed.
gtk_fixed_put ()
void gtk_fixed_put (GtkFixed *fixed,GtkWidget *widget,double x,double y);
Добавляет виджет в контейнер GtkFixed и назначает ему преобразование перемещения по заданным координатам x и y.
Параметры
fixed | a GtkFixed. | |
widget | виджет для добавления. | |
x | горизонтальная позиция размещения виджета. | |
y | вертикальная позиция размещения виджета. |
gtk_fixed_remove ()
void gtk_fixed_remove (GtkFixed *fixed,GtkWidget *widget);
Удаляет дочерний элемент из fixed , после того как он был добавлен с помощью gtk_fixed_put().
Параметры
fixed | a GtkFixed | |
widget | дочерний виджет для удаления |
gtk_fixed_move ()
void gtk_fixed_move (GtkFixed *fixed,GtkWidget *widget,double x,double y);
Устанавливает преобразование перемещения по заданным координатам x и y для дочернего элемента widget заданного контейнера GtkFixed.
Параметры
fixed | a GtkFixed. | |
widget | дочерний виджет. | |
x | горизонтальная позиция перемещения виджета. | |
y | вертикальная позиция перемещения виджета. |
gtk_fixed_get_child_position ()
void gtk_fixed_get_child_position (GtkFixed *fixed,GtkWidget *widget,double *x,double *y);
Получает преобразование перемещения заданного дочернего виджета GtkWidget в заданном контейнере GtkFixed.
См. также: gtk_fixed_get_child_transform().
Параметры
fixed | a GtkFixed | |
widget | дочерний элемент | |
x | горизонтальная позиция | [out] |
y | вертикальная позиция | [out] |
gtk_fixed_get_child_transform ()
GskTransform * gtk_fixed_get_child_transform (GtkFixed *fixed,GtkWidget *widget);
Получает преобразование для widget, установленное с помощью gtk_fixed_set_child_transform().
Возвращаемое значение
a GskTransform или NULL в случае, если для widget не было установлено преобразование.
[transfer none][nullable]
gtk_fixed_set_child_transform ()
void gtk_fixed_set_child_transform (GtkFixed *fixed,GtkWidget *widget,GskTransform *transform);
Устанавливает преобразование для widget.
Это вспомогательная функция, которая получает экземпляр GtkFixedLayoutChild, связанный с widget и вызывает gtk_fixed_layout_child_set_transform().
Типы и значения
struct GtkFixed
struct GtkFixed;
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkFixed.html