Spec-Zone.ru › GTK 4.0

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

дочерний элемент fixed

x

горизонтальная позиция widget .

[out]

y

вертикальная позиция widget .

[out]

gtk_fixed_get_child_transform ()

GskTransform *
gtk_fixed_get_child_transform (GtkFixed *fixed,
                               GtkWidget *widget);

Получает преобразование для widget, установленное с помощью gtk_fixed_set_child_transform().

Параметры

fixed

a GtkFixed

widget

a GtkWidget, дочерний элемент fixed

Возвращаемое значение

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().

Параметры

fixed

a GtkFixed

widget

a GtkWidget, дочерний элемент fixed

transform

преобразование, назначенное widget или NULL, чтобы сбросить преобразование widget.

[nullable]

Типы и значения

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API