Spec-Zone.ru › GTK 3.20

Использование GTK+ в системе X Window

Использование GTK+ в системе X Window — аспекты использования GTK+ для X11

GTK+ для системы X Window

В UNIX система X является стандартным бэкэндом для GTK+. Поэтому вам не нужно выполнять никаких специальных действий при его компиляции, и всё должно работать «само собой».

Чтобы интегрировать низкоуровневые функции Xlib в программу GTK, см. взаимодействие GDK с системой X Window в руководстве по GDK.

GTK+ включает механизм встраивания между процессами в виде виджетов #GtkSocket и #GtkPlug. Они специфичны для X11, и для их использования нужно подключить заголовок gtk/gtkx.h.

X11-специфические параметры командной строки

Бэкэнд X понимает дополнительные параметры командной строки.

--display display. Имя дисплея X для открытия вместо дисплея, указанного в переменной среды DISPLAY.

X11-специфические переменные среды

Бэкэнд GDK X11 может быть настроен с помощью дополнительных переменных среды.

GDK_SYNCHRONIZE. Если установлено, GDK выполняет все запросы X синхронно. Это полезный параметр для отладки, но он существенно снижает производительность.

GDK_CORE_DEVICE_EVENTS. Если установлено, GDK не использует расширение XInput и реагирует только на базовые события ввода X.

GDK_SCALE. Должно быть установлено в целое число, обычно 2. Если установлено, GDK будет масштабировать все окна на указанный множитель. Масштабируемый вывод предназначен для использования на дисплеях с высокой плотностью пикселей. Обычно GDK выбирает подходящий коэффициент масштабирования для каждого монитора из системы отображения. Эта переменная среды позволяет переопределить это значение.

GDK_DPI_SCALE. Это может быть полезно при использовании масштабируемых приложений GTK+ вместе с приложениями, не поддерживающими масштабирование, на дисплее с высокой плотностью пикселей. В этом случае разрешение шрифтов можно удвоить, чтобы сделать приложения, не поддерживающие масштабирование, читаемыми, а GDK_DPI_SCALE=0.5 можно установить, чтобы компенсировать это в приложениях GTK+, которые уже масштабированы путем установки GDK_SCALE=2.

Понимание архитектуры X11

Люди, пришедшие из среды Windows или MacOS, часто удивляются некоторым аспектам системы X Window. В этом разделе кратко представлены основные концепции X. Более подробная информация содержится в книге Справочник по программированию Xlib Адриана Най; эта книга является первой частью серии O'Reilly по системе X Window.

Стандарты — еще один важный ресурс, если вы углубляетесь в низкоуровневые детали X11, особенно спецификации ICCCM и расширенных подсказок для менеджеров окон. На freedesktop.org есть ссылки на многие соответствующие спецификации.

В руководстве по GDK описывается использование Xlib в программе GTK.

Сервер, клиент, менеджер окон

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

Сервер X отвечает за управление ресурсами, обработку запросов отрисовки и передачу событий, таких как события клавиатуры и мыши, заинтересованным приложениям. Таким образом, клиентские приложения могут просить сервер X создать окно, нарисовать окружность или переместить окна.

Менеджер окон отвечает за отрисовку рамки или границ вокруг окон; он также имеет последнее слово в определении размера каждого окна и состояния окна, например, минимизированное, максимизированное и т.д. В Windows и MacOS приложение отвечает за большую часть этого. В X11, если вы хотите изменить состояние окна или изменить его рамку, вы должны попросить менеджер окон сделать это от вашего имени, используя установленный стандарт.

GTK+ предоставляет функции для запроса выполнения различных действий менеджером окон; см., например, gtk_window_iconify() или gtk_window_maximize() или gtk_window_set_decorated(). Имейте в виду, что gtk_window_move() и изменение размера окна в конечном счете контролируются менеджером окон, и большинство менеджеров окон игнорируют некоторые запросы время от времени, в интересах хорошего пользовательского интерфейса.

© 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-x11.html

Spec-Zone.ru

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