Spec-Zone.ru › GTK 3.20

Запуск приложений GTK+

Запуск приложений GTK+ — Как запустить и отладить приложение GTK+

Запуск и отладка приложений GTK+

Общие параметры командной строки

Все приложения GTK+ поддерживают ряд стандартных параметров командной строки. Эти параметры удаляются из argv функцией gtk_init(). Модули могут анализировать и удалять дополнительные параметры. Подсистемы GDK X11 и Windows анализируют некоторые дополнительные параметры командной строки.

--gtk-module module. Список модулей для загрузки дополнительно к тем, которые указаны в переменной среды GTK3_MODULES и параметре gtk-modules.

--g-fatal-warnings. Заставить GTK+ прерываться при всех предупреждениях. Это полезно для остановки на первом предупреждении в отладчике, если ваше приложение выводит несколько предупреждений. В большинстве случаев лучше начать отладку с первого возникшего предупреждения.

--gtk-debug options. Список параметров отладки для включения дополнительно к тем, которые указаны в переменной среды GTK_DEBUG. Этот параметр недоступен, если GTK+ был сконфигурирован с --enable-debug=no.

--gtk-no-debug options. Список параметров отладки для выключения. Этот параметр доступен только если GTK+ был сконфигурирован с --enable-debug=yes.

Следующие параметры фактически используются GDK, а не GTK+, но мы включаем их для полноты.

--class class. Устанавливает класс программы; см. gdk_set_program_class().

--name name. Устанавливает имя программы.

--gdk-debug options. Список параметров отладки для включения дополнительно к тем, которые указаны в переменной среды GDK_DEBUG. Этот параметр доступен только, если GTK+ был сконфигурирован с --enable-debug=yes.

--gdk-no-debug options. Список параметров отладки для выключения. Этот параметр доступен только, если GTK+ был сконфигурирован с --enable-debug=yes.

Переменные окружения

GTK+ проверяет ряд переменных окружения помимо стандартных переменных, таких как LANG, PATH, HOME или DISPLAY; в основном для определения путей поиска определённых файлов. X11, Windows и Broadway GDK-бекенды используют дополнительные переменные окружения.

GTK_DEBUG. Если GTK+ не был сконфигурирован с --enable-debug=no, эта переменная может быть установлена в список опций отладки, которые заставляют GTK+ выводить различные виды отладочной информации.

actions

Действия и модели меню

baselines

Отображение базовых линий

builder

Поддержка GtkBuilder

geometry

Распределение размера

icontheme

Стили иконки

interactive

Открыть интерактивный отладчик

keybindings

Настройки горячих клавиш

misc

Разное

modules

Загрузка модулей

no-css-cache

Обойти кэширование свойств CSS

no-pixel-cache

Отключить кэш пикселей

plugsocket

Встраивание между процессами

pixel-cache

Кэш пикселей

printing

Поддержка печати

size-request

Запросы размера

text

Внутренности виджетов текста

touchscreen

Предполагать, что указатель - устройство сенсорного экрана

tree

Внутренности виджетов дерева

updates

Визуальная обратная связь об обновлениях окна

resize

Выделение изменяемых виджетов

layout

Отображение границ макета

Специальное значение all может быть использовано для включения всех опций отладки. Специальное значение help может быть использовано для получения списка всех поддерживаемых опций отладки.

GTK3_MODULES. Список модулей для загрузки. Обратите внимание, что GTK+ также позволяет указать модули для загрузки через опцию командной строки (--gtk-module) и с помощью настройки gtk-modules.

GTK_MODULES. Список модулей для загрузки дополнительно к тем, которые находятся в переменной GTK3_MODULES.

Обратите внимание, что эта переменная окружения также читается GTK+ 2.x, у которого может быть не тот же набор модулей для загрузки. Используйте GTK3_MODULES для модулей, совместимых только с GTK+ 3.

GTK_PATH. Указывает список каталогов для поиска при поиске GTK+ динамически загружаемых объектов, таких как модули, указанные в GTK_MODULES, движки тем, модули методов ввода, бэкенды файловой системы и бэкенды печати. Если путь к динамически загружаемому объекту задан как абсолютный путь, то GTK+ загружает его напрямую. В противном случае GTK+ последовательно проходит каталоги в GTK_PATH, за которым следует каталог .gtk-3.0 в домашнем каталоге пользователя, а затем системный каталог по умолчанию, который является libdir/gtk-3.0/modules. (Если GTK_EXE_PREFIX определён, libdir является $GTK_EXE_PREFIX/lib. В противном случае это libdir, указанный при конфигурации GTK+, обычно /usr/lib, или /usr/local/lib.) Для каждого каталога в этом списке GTK+ фактически ищет подкаталог directory/version/host/type, где version выводится из версии GTK+ (используйте pkg-config --variable=gtk_binary_version gtk+-3.0 для определения этого из скрипта), host - архитектура, на которой был построен GTK+ (используйте pkg-config --variable=gtk_host gtk+-3.0 для определения этого из скрипта), а type - каталог, специфичный для типа модулей; в настоящее время он может быть modules, engines, immodules, filesystems или printbackends, соответствующие типам модулей, упомянутым выше. Либо version, host, или оба могут быть опущены. GTK+ сначала ищет в самом специфичном каталоге, а затем в каталогах с меньшим количеством компонентов. Компоненты GTK_PATH разделяются символом ':' на Linux и Unix, и символом ';' на Windows.

Обратите внимание, что эта переменная окружения также читается GTK+ 2.x, что делает её непригодной для глобальной (или сессионной) установки, так как это приведёт к тому, что приложения GTK+ 2.x или GTK+ 3 увидят несовместимые модули.

GTK_IM_MODULE. Указывает модуль IM, который необходимо использовать в приоритете по сравнению с модулем, определённым по локали. Если это не установлено, и вы работаете на системе, которая включает XSETTINGS и имеет значение в Gtk/IMModule, это значение будет использовано для модуля IM по умолчанию. Это также может быть список методов ввода, разделённых двоеточием, которые GTK+ будет пытаться использовать по очереди, пока не найдёт доступный в системе.

GTK_IM_MODULE_FILE. Указывает файл, содержащий список модулей IM для загрузки. Эта переменная окружения использует значение по умолчанию libdir/gtk-3.0/3.0.0/immodules.cache (libdir имеет то же значение, что и в случае с GTK_PATH). Файл immodules.cache создаётся утилитой gtk-query-immodules-3.0.

Обратите внимание, что эта переменная окружения также читается GTK+ 2.x, что делает её непригодной для глобальной (или сессионной) установки, так как это приведёт к тому, что приложения GTK+ 2.x или GTK+ 3 увидят неверный список модулей IM.

GTK_EXE_PREFIX. Если установлено, GTK+ использует $GTK_EXE_PREFIX/lib вместо libdir, сконфигурированного во время компиляции GTK+.

GTK_DATA_PREFIX. Если установлено, заставляет GTK+ использовать $GTK_DATA_PREFIX вместо префикса, сконфигурированного во время компиляции GTK+.

GTK_THEME. Если установлено, заставляет GTK+ использовать указанную тему вместо темы, заданной настройкой gtk-theme-name. Это предназначено в основном для удобства отладки проблем с темой. Также можно указать вариант темы для загрузки, добавив имя варианта с двоеточием, например: `GTK_THEME=Adwaita:dark`.

Следующие переменные окружения используются GdkPixbuf, GDK или Pango, а не самим GTK+, но мы всё же включили их для полноты.

GDK_PIXBUF_MODULE_FILE. Указывает файл, содержащий список модулей загрузчика GdkPixbuf для загрузки. Эта переменная окружения переопределяет значение по умолчанию libdir/gtk-3.0/3.0.0/loaders.cache (libdir - sysconfdir, заданный при конфигурации GTK+, обычно /usr/local/lib.) Файл loaders.cache генерируется утилитой gdk-pixbuf-query-loaders.

GDK_DEBUG. Если GTK+ был сконфигурирован с --enable-debug=yes, эта переменная может быть установлена в список опций отладки, которые заставляют GDK выводить различные типы отладочной информации.

cursor

Информация о курсорах (только win32)

dnd

Информация о перетаскивании

draw

Информация о графических операциях (только win32)

eventloop

Информация о работе цикла событий (в основном Quartz)

misc

Разное

nogl

Отключить OpenGL. GDK будет вести себя так, как будто поддержка OpenGL недоступна.

nograbs

Отключить все захват мыши и клавиатуры

xinerama

Имитировать многоэкранную настройку

xim

Информация о поддержке XIM

Специальное значение all может быть использовано для включения всех опций отладки.

GDK_RENDERING. Если установлено, выбирает способ, которым GDK создаёт подобные поверхности. Это влияет как на функциональность функции gdk_window_create_similar_surface(), так и на способ, которым GDK создаёт поверхности для буферизации (double buffering). Можно использовать следующие значения:

similar

Создавать подобные поверхности для используемого окна. Это поведение по умолчанию, если переменная не установлена.

image

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

recording

Всегда создавать поверхности записи. Это вызывает непосредственное отображение в бэкенд без создания промежуточных поверхностей (Pixmaps в X) и, скорее всего, вызовет мерцание.

Все остальные значения будут игнорироваться и вернуться к поведению по умолчанию. В будущем могут быть добавлены другие значения.

GDK_BACKEND. Если установлено, выбирает GDK бэкенд для использования. Выбор бэкенда требует, чтобы GTK+ был скомпилирован с поддержкой этого бэкенда. Следующие бэкенды могут быть выбраны, при условии, что они включены в GDK библиотеки, которые вы используете:

quartz

Выбирает родной бэкенд Quartz

win32

Выбирает родной бэкенд для Microsoft Windows

x11

Выбирает родной бэкенд для подключения к серверам X11.

broadway

Выбирает бэкенд Broadway для отображения в веб-браузерах

wayland

Выбирает бэкенд Wayland для подключения к серверам отображения Wayland

mir

Выбирает бэкенд Mir для подключения к серверам отображения Mir

Начиная с версии 3.10, эта переменная окружения может содержать список имён бэкэндов, разделённых запятыми, которые будут пробоваться в указанном порядке. Список также может содержать *, что означает: попробовать все оставшиеся бэкэнды. Специальное значение "help" можно использовать для вывода GDK списка всех доступных бэкэндов. Более подробную информацию о выборе бэкэндов см. в функции gdk_display_manager_get().

XDG_DATA_HOME, XDG_DATA_DIRS. GTK+ использует эти переменные среды для поиска тем иконок и информации MIME. Дополнительную информацию можно найти в Спецификации темы иконок, Базе данных общих сведений о MIME и Спецификации базового каталога.

DESKTOP_STARTUP_ID. GTK+ использует эту переменную среды для предоставления уведомлений о запуске в соответствии со Спецификацией уведомлений о запуске. В соответствии со спецификацией, GTK+ сбрасывает эту переменную после ее считывания (чтобы не допустить ее утечки в дочерние процессы). Таким образом, если вам нужно получить ее значение для своих целей, вам нужно прочитать её перед вызовом gtk_init().

Интерактивная отладка

GTK+ включает интерактивный отладчик, называемый GTK+ Inspector, который позволяет исследовать дерево виджетов любого приложения GTK+ во время выполнения, а также настраивать тему и запускать средства визуальной отладки. Вы можете легко опробовать изменения во время выполнения, прежде чем внести их в код.

Обратите внимание, что GTK+ inspector может отображать только внутренние данные GTK+. Он не может понимать специфическую для приложения логику приложения GTK+. Также, тот факт, что GTK+ inspector работает в процессе приложения, ограничивает его возможности. Он предназначен как дополнение к полноценным отладчикам и средствам трассировки системы, таким как DTrace, а не как их замена.

Чтобы включить GTK+ inspector, вы можете использовать сочетания клавиш Control-Shift-I или Control-Shift-D, или установить переменную среды GTK_DEBUG=interactive.

В некоторых ситуациях может быть неуместно предоставлять пользователям доступ к GTK+ inspector. Сочетания клавиш можно отключить с помощью ключа `enable-inspector-keybinding` в схеме GSettings `org.gtk.Settings.Debug`.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/gtk-running.html

Spec-Zone.ru

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