Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

GTK +


New Gtk +. Svg

План:

Примітки

Введення

GTK + (скорочення від GIMP ToolKit) - кроссплатформенная бібліотека елементів інтерфейсу. Поряд з Qt є однією з двох найбільш популярних на сьогоднішній день бібліотек для X Window System.

Будучи спочатку частиною графічного редактора GIMP, вона розвинулася в окремий проект і придбала помітну популярність. GTK + - вільне ПЗ, яке розповсюджується на умовах GNU LGPL, що дозволяє створювати як вільне, так і пропрієтарне програмне забезпечення з використанням бібліотеки. GTK + є офіційною бібліотекою для створення графічного інтерфейсу проекту GNU. [6]


1. Історія

Номер версії Дата виходу версії Значні зміни Остання мінорна версія
1.0 14 квітня 1998 Перша стабільна версія 1.0.6
1.2 27 лютого 1999 Нові віджети (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree,
GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket)
1.2.10
2.0 11 березня 2002 GObject, Universal Unicode UTF-8 2.0.9
2.2 22 грудня 2002 Multihead support 2.2.4
2.4 16 березня 2004 Нові віджети (GtkFileChooser, GtkComboBox, GtkComboBoxEntry,
GtkExpander, GtkFontButton, GtkColorButton)
2.4.14
2.6 16 грудня 2004 Нові віджети (GtkIconView, GtkAboutDialog, GtkCellView);
це останній випуск, що підтримує Windows 98 / ME
2.6.10
2.8 13 серпня 2005 Інтеграція Cairo 2.8.20
2.10 3 липня 2006 Нові віджети (GtkStatusIcon, GtkAssistant, GtkLinkButton,
GtkRecentChooser) і підтримка печатки (GtkPrintOperation)
2.10.14
2.12 14 вересня 2007 GtkBuilder 2.12.12
2.14 4 вересня 2008 Підтримка завантаження JPEG 2000 2.14.7
2.16 13 березня 2009 Новий GtkOrientable,
в полі введення пароля показується попередження при включеному Caps Lock,
поліпшення в GtkScale, GtkStatusIcon, GtkFileChooser.
2.16.6
2.18 23 вересня 2009 Новий GtkInfoBar. Покращення в діалозі вибору файлу, печатки.
GDK був переписаний для використання 'client-side windows'
2.18.9
2.20 23 березня 2010 Новий GtkSpinner і GtkToolPalette, GtkOffscreenWindow.
Покращення в діалозі вибору файлу, роботі з клавіатурою, GDK.
Включені дані інтроспекції GObject
2.20.1
2.22 23 вересня 2010 gdk-pixbuf виділений в окремий модуль,
більшість функцій відтворення тепер виконує Cairo
2.22.1
2.24 30 січня 2011 Новий спрощений ComboBox-віджет (GtkComboBoxText),
CUPS -бекенд друку може відправляти завдання в PDF,
GtkBuilder отримав підтримку текстових тегов,
внесено безліч виправлень у символи інтроспекції
2.24.0
3.0 10 лютого 2011 За отрисовку тепер повністю відповідає Cairo, абстракція від X11,
використання XInput2, підтримка CSS -подібних тем оформлення
3.0.12
3.2 25 вересня 2011 Нові експериментальні Wayland і HTML5 бекенда, новий діалог вибору шрифту,
нові віджети: GtkLockButton і GtkOverlay
3.2.4
3.4 26 березня 2012 Підтримка сенсорних дисплеїв, в тому числі мультитач,
підтримка режиму плавної прокрутки, поліпшена підтримка Windows, MacOS X,
розширено API для формування візуальних тем
3.4.0

Проект Рідлі (Project Ridley) - це спроба об'єднати кілька бібліотек, зробивши їх частиною GTK +: libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglext і libsexy. [7]


2. Архітектура

GTK + написана на мовою Сі, але тим не менш, є об'єктно-орієнтованої [8]. Однією з причин для вибору Сі в якості мови було бажання легко будувати інтерфейси для інших мов програмування. В результаті під GTK + можна писати на наступних мовах програмування:

Мова Назва Підтримка
Ada GtkAda Часткова підтримка до 2.18
C GTK + Вбудована
C + + gtkmm Та
C # та інші мови
програмування
платформи . NET
Gtk # Часткова підтримка до 2.20
D gtkD Часткова підтримка до 2.18 (плюс Cairo, Gda, Gl, GStreamer)
Erlang gtkNode Часткова підтримка до 2.16
Fortran gtk-fortran Часткова підтримка до 2.24 / 3.0
GOB мови, написані для системи GObject. Та
Genie мови, написані для системи GObject. Та
Haskell gtk2hs Та
FreeBASIC GTK + tobac2 Часткова підтримка до 2.22
Free Pascal (Header) integrated into the core distribution GTK 2.16 з частковою підтримкою пізніх версій
Java java-gnome Часткова підтримка до 2.20 (недоступна на Windows)
JavaScript seed / GJS Та
Lua lgob Підтримує всі версії, починаючи з 2.16
Lua LuaGtk Часткова підтримка до 2.16
OCaml LablGTK Часткова підтримка до 2.16
Perl Gtk2-perl Часткова підтримка до 2.20
PHP PHP-GTK Часткова підтримка до 2.20
PureBasic Gtk2 Та
Python GObject -інтроспекція через PyGI, раніше PyGTK Та
R RGtk2 Часткова підтримка до 2.12
Ruby ruby-gtk2 Та
Smalltalk Smalltalk GTK GNU Smalltalk, Smalltalk YX, Squeak
Tcl Gnocl Та
Vala мови, написані для системи GObject. Та

Власне GTK + складається з двох компонентів: GTK і GDK. Перший містить набір елементів інтерфейсу, або " віджетів "(таких, як кнопка, список, поле для введення тексту і т. п. ) Для різних завдань. GDK відповідає за виведення на екран і може використовувати для цього X Window System, Linux Framebuffer, WinAPI або функції Mac OS X. Починаючи з версії 2.8, GDK багато в чому (але не повністю) замінена на систему відтворення векторної графіки Cairo.

Крім Cairo, GTK + залежить від трьох бібліотек - GLib, Pango та ATK, - які розробляються разом з GTK +, але можуть використовуватися і окремо. [6]


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

Зовнішній вигляд графічних інтерфейсів, створених з використанням GTK +, може конфігуруватися користувачем і / або програмістом. При цьому налаштовуються не лише кольори та шрифти, а й спосіб відображення різних елементів. Досягається це за рахунок використання " движків "для виводу на екран. Шляхом підключення іншого движка можна кардинальним чином змінювати зовнішній вигляд програм. Наприклад, деякі движки можуть використовувати псевдо- тривимірний вигляд, інші - більш "плоский" і т. п.


4. Використання

На основі GTK + побудовані робочі оточення GNOME, LXDE і Xfce. Програми, що використовують GTK + можуть виконуватися в інших оточеннях, наприклад в KDE. Крім того, GTK + може працювати і на операційних системах сімействах Microsoft Windows і Mac OS X.

Також GTK + обраний як основний бібліотеки побудови користувацьких інтерфейсів для Mono (порту Microsoft.NET для Linux). [9]

Робочі оточення, які використовують GTK +
  • GNOME повністю побудовано на GTK +
  • Xfce побудовано на GTK +, але в порівнянні з GNOME, програми Xfce мають менше залежностей
  • LXDE (Lightweight X11 Desktop Environment)
  • ROX Desktop
  • GPE Palmtop Environment
  • Access Linux Platform
  • Sugar навчальна платформа, яка побудована на GTK + з ипользование PyGTK
  • KDE, хоча використовує Qt, є підтримка програм і тим GTK + (з версії 4.2).
Віконні менеджери, що використовують GTK +
Програми використовують GTK +
  • AbiWord - текстовий редактор
  • Anjuta - офіційна інтегрована середа розробки GNOME
  • Chromium - веб-браузер, разрабативаеммий в основному компанією Google і використовує WebKit
  • Ekiga - програми для VoIP і відео-конференцій
  • Epiphany - веб-браузер середовища GNOME.
  • Evolution - програма для управління контактами та електронною поштою
  • GIMP - растровий графічний редактор
  • Inkscape - векторний графічний редактор
  • Midori - легкий веб-браузер
  • MonoDevelop - відкрита інтегрована середа розробки
  • Pidgin - клієнт обміну миттєвими повідомленнями
  • Wireshark - аналізатор мережевих пакетів

5. GTK + 3.0

Розробка наступної версії GTK + почалася в лютому 2009 на заході "GTK + Theming Hackfest", що проходив у Дубліні [10]. Перший начерк плану розробки був опублікований 9 квітня 2009 [11].

10 лютого 2011 відбувся реліз GTK + 3.0.0.

6. Приклад програми

Проста програма " Здрастуй, світ! "на GTK + в Linux

 / * Підключаємо бібліотеку GTK + * /  # Include   int  main  (  int  argc  ,  char  *  argv  [  ]  )  {  / * Оголошуємо віджети * /  GtkWidget  *  label  ;  / / Мітка  GtkWidget  *  window  ;  / / Головне вікно  / * Ініціалізували GTK + * /  gtk_init  (  &  argc  ,  &  argv  )  ;  / * Створюємо головне вікно * /  window  =  gtk_window_new  (  GTK_WINDOW_TOPLEVEL  )  ;  / * Встановлюємо заголовок вікна "Здрастуй, світ!" * /  gtk_window_set_title  (  GTK_WINDOW  (  window  )  ,  "Здрастуй, світ!"  )  ;  / * Створюємо мітку з текстом "Здрастуй, світ!" * /  label  =  gtk_label_new  (  "Здрастуй, світ!"  )  ;  / * Вставляємо мітку в головне вікно * /  gtk_container_add  (  GTK_CONTAINER  (  window  )  ,  label  )  ;  / * Показуємо вікно разом з віджетами * /  gtk_widget_show_all  (  window  )  ;  / * З'єднуємо сигнал завершення з виходом з програми * /  g_signal_connect  (  G_OBJECT  (  window  )  ,  "Destroy"  ,  G_CALLBACK  (  gtk_main_quit  )  ,  NULL  )  ;  / * Додаток переходить у вічний цикл очікування дій користувача * /  gtk_main  (  )  ;  return  0  ;  } 

Щоб скомпілювати приклад, потрібно виконати команду:

 gcc file_name.c-o file_name `pkg-config - cflags - libs gtk + -3.0` 

Приклад команди для mingw32 в linux:

 i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR = yes PKG_CONFIG_PATH = / usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig / pkg-config - cflags - libs gtk + -3.0` 

Інтерфейси для інших мов програмування

Примітки

  1. Див файл AUTHORS в архіві з вихідними кодами GTK +.
  2. Сторінка завантаження GTK +. - www.gtk.org / download / index.php
  3. Див файли перекладів . Po в папці po / в архіві з вихідними кодами GTK +.
  4. Див файл ChangeLog.pre-1-0 в архіві з вихідними кодами GTK +.
  5. Офіційний репозиторій GTK +. - ftp.gnome.org / pub / gnome / sources / gtk /
  6. 1 2 GTK + 2.18.0 released - mail.gnome.org/archives/gtk-devel-list/2009-September/msg00054.html (Англ.) . Статичний - www.webcitation.org/619UkHqU4 з першоджерела 23 серпня 2011.
  7. ProjectRidley - GNOME Live! - live.gnome.org / ProjectRidley
  8. GTK tutorial - www.gtk.org/tutorial1.2/gtk_tut-1.html
  9. GtkSharp - Mono - www.mono-project.com/GtkSharp
  10. Анонс "GTK + Theming Hackfest" - aruiz.typepad.com/siliconisland/2009/02/gtk-30-theming.html
  11. План робіт Gtk + 3.0 - testbit.eu / ~ timj/blogstuff/GtkRoadmap3Draft2.html

Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас