Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

GTK

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено зGTK+)
GTK
ТипWidget toolkit
РозробникиGNOME Foundation
Стабільний випуск4.8 (6 вересня2022; 2 роки тому (2022-09-06))
Платформакросплятформність Редагувати інформацію у Вікіданих
Операційна системаКрос-платформовий
Мова програмуванняC
ЛіцензіяGNU Lesser General Public License
Онлайн-документаціяdocs.gtk.org Редагувати інформацію у Вікіданих
Репозиторійgitlab.gnome.org/GNOME/gtk
Вебсайтwww.gtk.org

GTK, колишнійGTK+, (відTheGIMPToolKit) — кросплатформовий набірінструментів для створенняграфічних інтерфейсів користувача. Разом ізQt є одним із найпопулярніших інструментів дляWayland таX Window System.

GTK було розроблено дляGNU Image Manipulation Program (GIMP),растрового графічного редактора, у1997 році Спенсером Кімбалом (Spencer Kimball) та Петером Матісом (Peter Mattis), членамиeXperimental Computing Facility (XCF) вUC Berkeley. GTK розвивається в рамкахпроєкту GNU і євільним програмним забезпеченням.Код GTK розповсюджується під ліцензієюLGPL, що дозволяє використовувати GTK не тільки для розробки вільного ПЗ, а й для створення власницьких програм, не вимагаючи від виробників закритих програм виплати роялті або купівлі спеціальної ліцензії.

До складу тулкіта входить повний набірвіджетів, що дозволяють використовувати GTK для проєктів різного рівня і розміру. GTK спеціально спроєктований для підтримки не тільки C/C++, але й інших мов програмування, таких якPerl іPython, що в поєднанні з використанням візуального будівника інтерфейсуGlade дозволяє істотно спростити розробку і скоротити час написання графічних інтерфейсів. Організація виводу в GTK абстрагована від типу віконних систем, наприклад, поставляється бекенд, що забезпечує можливість роботи поверх дисплейного сервераWayland, а також бекенд, котрий дозволяє здійснювати виведення бібліотеки GTK у вікнівеббраузера (запустивши GTK-застосунок на одній машині, можна відкрити браузер на іншій машині і отримати доступ до інтерфейсу цієї програми).

Відтоді як GTK був розроблений в рамках проєктуGIMP, тулкіт використовується в різних проєктах, наприклад, GTK лежить в основі десктоп-оточеньGNOME таXfce, використовується в таких продуктах, якFirefox іOpenOffice/LibreOffice.

Мови програмування

[ред. |ред. код]
The GTK toolkit

GTK+ написана намові програмування С, і використовує систему об'єктівGObject, що робить їїоб'єктно-орієнтованою. ПлатформаGNOME забезпечуєміжмовне зв'язування для мов:

Іншими розробниками були написані біндінґи для багатьох іншихмов програмування (Ada,D,Haskell,Ocaml,Pascal,Pike,Tcl,Euphoria[en] та усіх мов.NET). GTK server[2] забезпечує GTK+ інтерфейсомміжпроцесорної взаємодії, що дозволяє використовувати його у будь-якій мові програмування, котра підтримує механізмвведення-виведення (I/O), включно із сценаріямиshell. Повний перелік біндінґів можна знайти на сайті проєкту[3].

На відміну відQt, GTK+ не базується на іншихXt-подібних наборах віджетів. Це надає їй гнучкості і дозволяє використовувати GTK+ на інших системах. Однак, без цієї залежності, GTK+ немає доступу до бази ресурсівX Window System, традиційного способу налаштування програмного забезпеченняX11.

Зовнішній вигляд

[ред. |ред. код]

Кінцевий користувач може налаштувати зовнішній вигляд графічних елементів за допомогою системи жупанів[що це?]. Існують жупани, котрі імітують вигляд елементів графічних інтерфейсів таких операційних систем, якWindows 95,Motif,Qt,NEXTSTEP, та багатьох інших.

Платформи

[ред. |ред. код]

GTK+ спочатку призначалась дляX Window System, і вони й по нині залишається її основною платформою. Іншими підтримуваними програмними платформами єMicrosoft Windows (Windows 2000 та вище),DirectFB таQuartz (Mac OS X v10.4 та вище, нині знаходиться у стадії розробки).

Випуски

[ред. |ред. код]

GTK+ 2

[ред. |ред. код]

GTK+ 2 переважає своїми можливостями GTK+ 1. Серед нових можливостей вдосконалене відображення тексту за допомогоюPango, нова система жупанів, вдосконалена доступність за допомогою Accessibility Toolkit, повний перехід наUnicode використовуючи рядкиUTF-8 та гнучкішеAPI. Між тим, GTK+ 2 втратила сумісність з GTK+ 1, і програмісти повинні переписати програмне забезпечення під нову версію бібліотеки.

Починаючи з версії 2.8, GTK+ 2 вимагає бібліотекуCairo для відображення векторної графіки у GTK+ 2.

GTK+ 3

[ред. |ред. код]

10 лютого2011 відбувся реліз GTK+ 3.0.0[4]. Робота над GTK+ 3 починалася як «велика чистка» і тривала протягом кількох років.

Нововведення:

  • Відображенням всього тепер займаєтьсяCairo. GDK більше не є обгорткою застарілих X11 drawing API. Це дозволило видалити кілька X11-орієнтованих концепцій (GCs, colormaps, pixmaps). Більшу частину роботи зробив Benjamin Otte зRedHat.
  • Підтримка сучасних пристроїв введення. Раніше цим нехтували (мало з основних розробників користуються «екзотичними» пристроями введення). З приходом GTK+ 3 з'явилася підтримка декількох покажчиків, клавіатур тощо.
  • НовіAPI для тем зі знайомим синтаксисомCSS для налаштування і інші вдосконалення, наприклад, анімована зміна станів.
  • Гнучкіше керування геометрією.
  • Підтримка кількох бекендівGDK. З GTK+ 2.x потрібно було перезбирати програми для їхньої роботи з різними бекендами GDK, бо вони були реалізовані окремими бібліотеками. У GTK+ 3 їх можна вбудувати в одну бібліотеку і вибирати під час виконання. Це полегшить перехід зX11 наWayland або з Quartz на X11.
  • Легка підтримказастосунків. З інтеграцієюD-Bus в GIO стало можливим додати клас, який обробляє велику кількість аспектів інтеграції платформи створення програмного забезпечення, таких як відстеження відкритих вікон, забезпечення унікальності, експорт дій тощо. Це все в стадії розробки і буде розширено в майбутньому.

Історія випусків

[ред. |ред. код]
Лінійка випусківОстання Minor версіяДата виходуОсновні зміни
1.0.x1.0.???
1.2.x[Архівовано 25 липня 2020 уWayback Machine.]1.2.102 квітня2001?
2.0.x[Архівовано 27 вересня 2020 уWayback Machine.]2.0.920 листопада2002?
2.2.x[Архівовано 27 вересня 2020 уWayback Machine.]2.2.44 вересня2003?
2.4.x[Архівовано 27 вересня 2020 уWayback Machine.]2.4.143 грудня2004?
2.6.x[Архівовано 28 жовтня 2020 уWayback Machine.]2.6.1018 серпня2005?
2.8.x[Архівовано 28 жовтня 2020 уWayback Machine.]2.8.202 липня2006ІнтеграціяCairo
2.10.x[Архівовано 22 вересня 2020 уWayback Machine.]2.10.1416 липня2007GtkPrint — підтримка друку
2.12.x[Архівовано 28 вересня 2020 уWayback Machine.]2.12.1112 березня2008GtkBuilder — замінаlibglade
2.14.x[Архівовано 19 жовтня 2020 уWayback Machine.]2.14.324 вересня2008Перелік новинок[Архівовано 15 лютого 2011 уWayback Machine.]
3.010 лютого2011Перелік новинок[Архівовано 10 вересня 2008 уWayback Machine.]
3.226 вересня 2011Перелік новинок[Архівовано 28 березня 2012 уWayback Machine.]
3.426 березня 2012Перелік новинок[Архівовано 10 вересня 2008 уWayback Machine.]
3.6
3.825 березня 2013
3.1023 вересня 2013
3.1225 березня 2014можливість роботи поверх дисплейного сервераWayland
3.1422 вересня 2014підтримкамультитач доведена до практичного застосування; інтегрований власний інтерактивнийзневаджувачGtkInspector
3.1622 березня 2015можливість рисувати черезOpenGL без зовнішніх надбудов
3.1822 вересня 2015
3.2021 березня 2016

Приклад «Привіт, світе!»

[ред. |ред. код]

Класичний приклад програми«Привіт, світе!» (англ.«Hello, world!») на мовіС з використанням GTK+:

#include<config.h>#include<gtk/gtk.h>/* * Запускаємо головний цикл програми */staticvoidon_destroy(GtkWidget*widget,gpointerdata){gtk_main_quit();}intmain(intargc,char*argv[]){GtkWidget*window;GtkWidget*label;gtk_init(&argc,&argv);/* створюємо головне вікно */window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/* задаємо границю для вікна розміром 20 пікселів */gtk_container_set_border_width(GTK_CONTAINER(window),20);/* задаємо вікну заголовок */gtk_window_set_title(GTK_WINDOW(window),PACKAGE" "VERSION);/* задаємо розміри вікна */gtk_window_set_default_size(GTK_WINDOW(window),200,50);/* Під'єднуємо подію "destroy" головного вікна до нашої функції on_destroy */g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(on_destroy),NULL);/* створюємо мітку "Привіт, світе!"  */label=gtk_label_new("Hello, World");/* і додаємо її до головного вікна  */gtk_container_add(GTK_CONTAINER(window),label);/* відобразити усі віджети */gtk_widget_show_all(window);/* запускаємо головний цикл */gtk_main();return0;}

Майбутня розробка

[ред. |ред. код]

Project Ridley має намір консолідувати розробку низки бібліотек, котрі є частиною GTK+, серед них: libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel та gtkglext[5].

Див. також

[ред. |ред. код]

Виноски

[ред. |ред. код]
  1. http://directory.fsf.org/wiki/gtk+
  2. GTK-server(англ.). Архіворигіналу за 27 серпня 2008. Процитовано 16 серпня 2008.
  3. Language bindings(англ.).Архів оригіналу за 2 квітня 2011.
  4. GTK+ 3.0. Архіворигіналу за 4 березня 2016. Процитовано 6 травня 2022.
  5. ProjectRidley — GNOME Live!. Архіворигіналу за 1 березня 2011. Процитовано 17 серпня 2008.

Посилання

[ред. |ред. код]

Українські ресурси

[ред. |ред. код]
Низькорівневі
Високорівневі
Кросплатформні
Десктоп
Web
Отримано зhttps://uk.wikipedia.org/w/index.php?title=GTK&oldid=44462641
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2025 Movatter.jp