Spec-Zone.ru › GTK 4.0

Инициализация

Инициализация — Инициализация библиотеки и основной цикл

Функции

void gtk_disable_setlocale ()
PangoLanguage * gtk_get_default_language ()
GtkTextDirection gtk_get_locale_direction ()
void gtk_init ()
gboolean gtk_init_check ()
gboolean gtk_is_initialized ()
GtkDebugFlags gtk_get_debug_flags ()
void gtk_set_debug_flags ()

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

#define GTK_PRIORITY_RESIZE
enum GtkDebugFlags

Включаемые файлы

#include <gtk/gtk.h>

Описание

Перед использованием GTK необходимо его инициализировать, используя gtk_init(); это подключается к системе окон, настраивает локаль и выполняет другие задачи инициализации. gtk_init() завершает приложение в случае возникновения ошибок; чтобы этого избежать, можно использовать gtk_init_check(), что позволяет восстановиться после неудачной инициализации GTK — возможно, ваше приложение запустится в текстовом режиме.

Как и все графические наборы инструментов, GTK использует событийно-ориентированную модель программирования. Когда пользователь ничего не делает, GTK находится в «основном цикле» и ожидает ввода. Если пользователь выполняет какое-либо действие, например, щелчок мышью, то основной цикл «просыпается» и отправляет событие в GTK. GTK передает событие одному или нескольким виджетам.

Когда виджеты получают событие, они часто излучают один или несколько «сигналов». Сигналы уведомляют вашу программу, что «произошло что-то интересное», вызывая функции, которые вы подключили к сигналу с помощью g_signal_connect(). Функции, подключенные к сигналу, часто называются «обработчиками событий».

Когда вызываются ваши обработчики событий, вы обычно выполняете какое-то действие — например, при нажатии кнопки «Открыть» вы можете отобразить GtkFileChooserDialog. После завершения обработчика событий GTK возвращается в основной цикл и ожидает дальнейшего ввода пользователя.

Типичная main() функция для приложения GTK

См. GMainLoop в документации GLib, чтобы узнать больше о циклах и их функциях.

Подробное описание функций

gtk_disable_setlocale ()

void
gtk_disable_setlocale (void);

Предотвращает, чтобы gtk_init(), gtk_init_check() и gtk_parse_args() автоматически вызывали setlocale (LC_ALL, ""). Вы захотите использовать эту функцию, если хотите установить локаль для вашей программы на значение, отличное от локали пользователя, или если хотите установить разные значения для разных категорий локали.

Большинству программ не нужно вызывать эту функцию.

gtk_get_default_language ()

PangoLanguage *
gtk_get_default_language (void);

Возвращает PangoLanguage для языка по умолчанию, который в настоящее время действует. (Обратите внимание, что это может измениться в течение жизни приложения.) Язык по умолчанию выводится из текущей локали. Он определяет, например, использует ли GTK направление текста справа налево или слева направо.

Эта функция эквивалентна pango_language_get_default(). См. эту функцию для получения подробностей.

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

язык по умолчанию в виде PangoLanguage, не нужно освобождать.

[transfer none]

gtk_get_locale_direction ()

GtkTextDirection
gtk_get_locale_direction (void);

Получает направление текущей локали. Это ожидаемое направление чтения текста и пользовательского интерфейса.

Эта функция зависит от текущей локали, установленной с setlocale(), и по умолчанию установит направление GTK_TEXT_DIR_LTR в противном случае. GTK_TEXT_DIR_NONE никогда не будет возвращаться.

GTK устанавливает направление текста по умолчанию в соответствии с локалью во время gtk_init(), и вы обычно должны использовать gtk_widget_get_direction() или gtk_widget_get_default_direction() для получения текущего направления.

Эта функция требуется только в редких случаях, когда локаль изменяется после того, как GTK уже был инициализирован. В этом случае вы можете использовать её для обновления направления текста по умолчанию следующим образом:

int
main (int argc, char **argv)
{
 GtkWidget *window;
  // Initialize i18n support with bindtextdomain(), etc.

  // ...

  // Initialize the widget set
  gtk_init ();

  // Create the main window
  window = gtk_window_new ();

  // Set up our GUI elements

  // ...

  // Show the application window
  gtk_widget_show (window);

  // Enter the main event loop, and wait for user interaction
  while (!done)
    g_main_context_iteration (NULL, TRUE);

  // The user lost interest
  return 0;
}

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

GtkTextDirection текущей локали

gtk_init ()

void
gtk_init (void);

Вызовите эту функцию перед использованием других функций GTK в ваших графических приложениях. Она инициализирует всё необходимое для работы с набором инструментов и анализирует некоторые стандартные параметры командной строки.

Если вы используете GtkApplication, вам не нужно вызывать gtk_init() или gtk_init_check(); обработчик “запуска” делает это за вас.

Эта функция завершит вашу программу, если она не смогла инициализировать систему окон по какой-либо причине. Если вы хотите, чтобы ваша программа перешла к текстовому интерфейсу, вы хотите вызвать gtk_init_check() вместо этого.

GTK вызывает signal (SIGPIPE, SIG_IGN) во время инициализации, чтобы игнорировать сигналы SIGPIPE, так как они почти никогда не нужны в графических приложениях. Если вам нужно обработать SIGPIPE по какой-либо причине, сбросьте обработчик после gtk_init(), но имейте в виду, что другие библиотеки (например, libdbus или gvfs) могут делать подобные вещи.

gtk_init_check ()

gboolean
gtk_init_check (void);

Эта функция выполняет ту же работу, что и gtk_init() с только одним изменением: она не завершает программу, если система окон не может быть инициализирована. Вместо этого она возвращает FALSE при ошибке.

Таким образом, приложение может перейти к другим средствам связи с пользователем — например, к интерфейсу командной строки или curses.

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

TRUE если система окон успешно инициализирована, FALSE в противном случае

gtk_is_initialized ()

gboolean
gtk_is_initialized (void);

Используйте эту функцию для проверки, была ли GTK инициализирована с помощью gtk_init() или gtk_init_check().

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

статус инициализации

gtk_get_debug_flags ()

GtkDebugFlags
gtk_get_debug_flags (void);

Возвращает флаги отладки GTK, которые в настоящее время активны.

Эта функция предназначена для модулей GTK, которые хотят настроить свой вывод отладки на основе флагов отладки GTK.

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

флаги отладки GTK.

gtk_set_debug_flags ()

void
gtk_set_debug_flags (GtkDebugFlags flags);

Устанавливает флаги отладки GTK.

Параметры

flags

устанавливаемые флаги отладки

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

GTK_PRIORITY_RESIZE

#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10)

Используйте этот приоритет для функциональности, связанной с распределением размеров.

Он используется внутри GTK+ для вычисления размеров виджетов. Этот приоритет выше, чем GDK_PRIORITY_REDRAW, чтобы избежать изменения размера виджета, который был только что перерисован.

перечисление GtkDebugFlags

Члены

GTK_DEBUG_TEXT

GTK_DEBUG_TREE

GTK_DEBUG_KEYBINDINGS

GTK_DEBUG_MODULES

GTK_DEBUG_GEOMETRY

GTK_DEBUG_ICONTHEME

GTK_DEBUG_PRINTING

GTK_DEBUG_BUILDER

GTK_DEBUG_SIZE_REQUEST

GTK_DEBUG_NO_CSS_CACHE

GTK_DEBUG_INTERACTIVE

GTK_DEBUG_TOUCHSCREEN

GTK_DEBUG_ACTIONS

GTK_DEBUG_LAYOUT

GTK_DEBUG_SNAPSHOT

GTK_DEBUG_CONSTRAINTS

GTK_DEBUG_BUILDER_OBJECTS

GTK_DEBUG_A11Y

См. также

См. руководство по GLib, особенно GMainLoop и функции, связанные с сигналами, такие как g_signal_connect()

© 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/gtk4-General.html

Spec-Zone.ru

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