Должен ли я изучать GObject и GLib для работы с GTK?

#gtk #glib #gobject

#gtk #glib #gobject

Вопрос:

Мне нужно разработать собственное приложение на Linux для школьного проекта. Я решил работать с GTK и начал читать официальное руководство.

Сам GTK API довольно прост для понимания, но я сталкиваюсь с проблемами с GObject и GLib, их трудно освоить, и я не знаю, почему к ним привыкли. Должен ли я изучать GObject и GLib для работы с GTK?

Официальная документация GObject невероятно огромна https://developer.gnome.org/gobject/stable / и мне понадобится несколько недель, чтобы просто изучить GObject, чтобы, наконец, изучить GTK.

Ответ №1:

GTK основан на GLib и использует свой основной цикл для обработки событий и управления памятью. Если вы пишете на C, вы должны понимать, как работает GLib (в противном случае у вас будут утечки памяти). Детали более низкого уровня объектной системы (GObject) интересны только в том случае, если вы создаете пользовательские виджеты.

Однако, если требования вашего проекта допускают Python или JavaScript, то Glib / GObject сами по себе практически бесполезны, и вы можете погрузиться в GTK напрямую.

Источник: авторские приложения, использующие PyGObject, gtkmm и raw GTK на C.

Комментарии:

1. Обратите внимание, что вам также не обязательно изучать абсолютно все . Вам нужны только основы и знания о том, как безопасно использовать GTK . Это очень, очень хороший ответ от довольно нового пользователя. Спасибо, Артем.

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

3. @andlabs, да, хотя я должен надеяться, что кто-нибудь знает основы свойств и сигналов. Поскольку я занимался только программированием GTK на Perl, мне не приходилось напрямую использовать GObject.