Spec-Zone.ru › GTK 3.22

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

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

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

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

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

--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.x увидят несовместимые модули.

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.x увидят неверный список модулей 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 вспомогательных поверхностей для буферизации изображения. Могут быть использованы следующие значения:

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.22/gtk-running.html

Spec-Zone.ru

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