TGViewer
LinuxCamp | DevOps LinuxCamp | DevOps @linuxcamp_tg · 13.6K subscribers
Post #71 7.7K
Говорим про либы: GTK и QT [1]

Уж очень часто в современной разработке софта под Linux, программистам приходится взаимодействовать с библиотеками GTK и QT. Будь-то приложение по управлению системами IOT (Internet of things) либо сетевой менеджер, не всех может устроить взаимодействие с утилитой через CLI (command line interface), поэтому для повышения комфорта в использовании, приходится прибегать к графическому туллкиту.

В этой серии постов я, через призму личного опыта, постараюсь объяснить вам то, что из себя представляют библиотеки GTK и QT, для чего они необходимы, c какими ЯП используются и, на сколько востребованы при трудоустройстве.

Что вообще такое это ваше GTK и QT?

Для разработки графических приложений нам нужен какой-то, желательно, простой в использовании, инструментарий - API, через которое можно попросить ряд подсистем нашей операционки создать окно, отрисовать кнопку, повесить на нее ивент и выполнить определенный набор инструкций по требованию.

Парочка GTK/QT, как раз и является тем самым высокоуровневым API над такими платформозависимыми технологиями, как X11, WinAPI, WaylandAPI и т.д.

Целые окружения рабочего стола, со всеми их графическими утилитами, написаны на этих библиотеках - так GNOME использует GTK, KDE, в свою очередь, построен на QT.

Вид некоторых виджетов GTK приложений сильно отличается от тех, которые предлагает QT, из-за чего желательно, чтобы системные приложения внутри определенного DE (Desktop Environment) были написаны на том же графическом туллките, что и сами компоненты окружения.

GTK - это многомодульный GUI туллкит, который разработан на языке программирования C в рамках проекта GNOME и необходим для создания графических интерфейсов под разные системные платформы: Windows, Linux, MacOS. Преимущественно, конечно же, именно под Linux.

Когда-то, еще в бородатые годы, пробовал запуститься на Windows, но, ребята, оно того не стоит. Для MacOS и Windows существуют гораздо более предпочтительные альтернативы.

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

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

Qt уже не отнесешь к группе "просто" GUI туллкитов. В отличии от GTK, Qt является полноценным фреймворком для разработки приложений: гораздо более функциональным, громоздким и, написанным на C++.

Тут вам и API по построению клиент-серверной архитектуры и кастомные типы данных и различные медиа классы и готовые сущности для работы с базами данных и SQL.

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

На Qt, без всяких там boost, ASIO и, уж тем более, платформозависимых системных обращений, можно построить многопоточный сетевой аппликейшн.

Приложение, написанное на том, что Qt предоставляет из коробки будет структурно выглядеть приемлемо - иметь единый стиль и, с высокой вероятностью, работать корректно на разных поддерживаемых платформах, среди которых: Windows, Linux, MacOS, Android, IOS.

При работе с GTK тоже можно использовать реализации различных структур данных, API под разные задачи - все это присутствует в сторонних библиотеках, разработанных проектом GNOME (GLib, GIO и т.д.), но по удобству использования и функциональности это, конечно, не дотягивает до Qt.

Qt также может похвастаться, как мне кажется, хорошим IDE (Qt Creator), который позволяет вам удобно вести полный цикл разработки приложения - переключаться между версткой дизайна и кодом, заниматься отладкой и профилированием, взаимодействовать с системой контроля версий и т.д.

Linux++ | IT-Образование
  • 👍 28
  • 🔥 14
  • ❤ 5
  • 🥰 2
  • 🎃 1
More from @linuxcamp_tg
  1. Sep 28, 2026Проекту GNU вчера исполнилось 43 года 1983 год: Ричард Столлман объявил планы разработать…
  2. Sep 25, 2026Linux будет работать на ноутах с Snapdragon X2. Qualcomm добавляет полноценную поддержку L…
  3. Sep 24, 2026Так все по делу)) Советует же самый быстрый фикс LinuxCamp | #memes
  4. Sep 23, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Sep 22, 2026Ещё одна рекордная неделя для AI-разработки в Linux. На прошлой неделе в ядро попало 1 634…
  6. Sep 17, 2026Открыл плейлист, а как выйти - непонятно 😁 LinuxCamp | #memes
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →