Библиотеки интерфейсных элементов системы XWindow System

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

Все интерфейсные элементы управления приложениями, такие как кнопки, полосы прокрутки, закладки, меню, списки и пр. должны быть самостоятельно составлены X-клиентами из простейших примитивов. Для решения этой задачи Х-клиенты используют специальные библиотеки интерфейсных элементов (виджетов, widget), такие как W:[Xaw], Xview, W:[Motif], W:[Tk], W:[Qt), W:[Gtk] и др.

Самими «простыми» (доставшимися в наследство от UNIX) библиотеками виджетов являются библиотеки Xaw и Motif, разработанные на основе базовой Xt, W :[X Toolkit Intrinsics], а так же «альтернативная»XView.

Более «современным» видом виджетов обладают наиболее распространенные на сегодняшний день библиотеки Qt и Gtk, на основе которых разрабатываются пользовательские среды KDE и GNOME.

В примере из листинга ниже иллюстрируется использование различных X-библиотек, среди которых библиотека самого X-протокола О W:[Xlib], библиотеки виджетов Xt и Xaw © и библиотеки расширений X-протокола, например W:[XRender].

Библиотеки Xlib, Xt и Xaw

homer@ubuntu: ldd $(which xeyes) | grep -1 libX
libXext.so.6 => /usr/lib/i386-llnux-gnu/libXext.so.6 (0xb7781000)

libXmu.so.6 => /usr/lib/1386-linux-gnu/libXmu.so.6 (0xb7768000)

libXt.so.6 => /usr/lib/1386-linux-gnu/libXt.so.6 (0xb770b000)

libX11.so.6 => /usr/lib/i386-linux-gnu/libXll.so.6 (0xb75d7000)

libXrender.so.l => /usr/lib/1386-linux-gnu/libXrender.so.1 (0xb75cd000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb73a2000)

libXdmcp.so.6 => /usr/lib/t386-linux-gnu/libXdrocp.so.6 (0xb739b000)

homer@ubuntu:~$ ldd $(which xcalc) | grep -1 Хаw

libXaw.so.7 => /usr/lib/i386-linux-gnu/libXaw.so.7 (0xb76fb000)

Аналогично, в листинге ниже показаны X-клиенты, использующие библиотеки виджетов XView и Motif, а в листинге еще ниже — клиенты, использующие Tk, Gtk и Qt.

Библиотеки декорирования XView и Motif

homer@ubuntu:~$ ldd $(which clock) | grep -i libXView

libxview.so.3 .=> /usr/lib/libxview.so.3 (0xb7595000)

homer@ubuntu:~$ ldd $(which mwm) | grep -i libXm

libXm.so.4 => /usr/lib/i386-linux-gnu/libXm.so.4 (0xb7458000)

libXmu.so.6 => /usr/lib/1386-linux-gnu/libXmu.so.6 (0xb70f2000)

Библиотеки декорирования Tk, Gtk и Qt

homer@ubuntu:~$ ldd $(which wish) | grep -i LibTk

libtk8.5.so.0 => /usr/lib/libtk8.5.so.0 (0xb7620000)

homer@ubuntu:~$ ldd $(which nautilus) | grep -i libGtk

libgtk-3.so.0 => /usr/lib/i386-linux-gnu/libgtk-3.so.0 (0xb70fl000)

homer@ubuntu:~$ ldd $(which kcalc) | grep -i libQtGui

libQtGui.so.4 => /usr/lib/1386-linux-gnu/libQtGui.so.4 (0xb5fec000)

Добавить комментарий