Связь между средой рабочего стола, оконной системой и библиотеками графического интерфейса

Я пытаюсь понять взаимосвязь между средами рабочего стола (например, KDE, Cinnamon, GNOME), оконными системами (X, Wayland) и библиотеками графического интерфейса (Qt, GTK). Вот некоторые вещи, которые, как мне кажется, я понял (поправьте меня!):

  • среды рабочего стола закодированы с использованием определенных библиотек (например, Cinnamon на основе GTK, LXQt на основе Qt); они определяют особый внешний вид графического интерфейса пользователя
  • . Библиотеки отвечают за отрисовку конкретных виджетов (кнопок, текстовых полей и т. д.), с которыми я взаимодействую.
  • они делают это, отправляя инструкции по рисованию в систему управления окнами ( например, нарисуйте прямоугольник с закругленными углами для моей кнопки).

Однако что-то кажется неправильным на этом рисунке: запуская Cinnamon (на основе GTK), я могу полностью кодировать и запускать программы, использующие Qt. Как конкретные программы могут использовать свою собственную библиотеку графического интерфейса (и отправлять свои собственные инструкции по рисованию)? Разве среда рабочего стола не должна определять форму и форму окон?

0
задан 3 December 2020 в 00:18

1 ответ

Пользовательский опыт

Вы можете иметь в памяти обе библиотеки Qt и GTK (включая GTK2, GTK3 и Qt5...) одновременно, это не будет проблемой, если у вас много памяти в вашей памяти. box, но это будет означать много пейджинга и очень медленную работу, если у вас ограниченная оперативная память.

Как правило, я склонен игнорировать наборы инструментов и библиотеки, используемые там, где бокс имеет > 4 Гб оперативной памяти, меньше интересуюсь 4 Гб, но обращаю особое внимание, если бокс имеет 2 Гб, особенно. с 1 Гб. Чем больше используемых библиотек/инструментов, тем больше накладных расходов (особенно используемой ОЗУ)...

Десктопы (с использованием LXQt в качестве примера)

DE не определяют все (Lubuntu использует LXQt с Openbox, который обрабатывает максимизацию, минимизацию и т. д., поскольку LXQt не может)

Программное обеспечение построено в виде стека, и вы можете добавлять и заменять различные компоненты (используйте LXQt в Debian, и по умолчанию он будет использовать xfwm4 из проекта XFCE вместо Openbox, предпочитаемого командой Lubuntu).

Программист имеет контроль над тем, что он использует, и он склонен выбирать эффективные инструменты, отвечающие его потребностям или целям проекта (LXQt; буква L означает легкость, к которой относятся серьезно).

Выбор

Хотя конечные пользователи могут тратить оперативную память, выбирая программы GTK, упаковщики могут свободно использовать различные WM (мой пример openbox/xfwm4) и строить систему по своему выбору.

После установки вы также можете заменять компоненты.

У пользователей GNU/Linux есть выбор, мы можем выбирать, какие части различных систем существуют в нашем стеке, даже удваивать и использовать несколько библиотек/наборов инструментов, которые делают одно и то же по-разному и тратят ресурсы только потому, что мы можем, или нам это нравится.

1
ответ дан 2 December 2020 в 22:03

Другие вопросы по тегам:

Похожие вопросы: