LINUX.ORG.RU

GTK2 для идиота


0

3

Есть ли какая-нибудь книжка в стиле «… для идиотов», посвященная GTK2?

Хочу на выходных разобраться, как сделать гуевое гномовое приложение. Интересует не учебник по Си, а описание GTK/gnome как технологии и платформы для быстрой разработки гуевых программ. Хочется пошаговых инструкций, жизненных советов, скринов и по-человечески разжованного ответа на вопрос «как это использовать на самом деле».

Например, если бы кто-то спросил меня «как писать сайты на Java», я смог бы подобрать ему довольно быструю программу обучния, после которой он со спокойной душой мог бы назвать себя сайтостроителем. Кроме того, такая литература есть в чистом виде. Наверное это бан в гугле, но для линукс-программирования я не вижу похожих готовых искаробочных решений.

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

★★★★☆

PyGTK, по нему есть отличный мануал на хабре, целая серия постов с пошаговым описанием.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

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

stevejobs ★★★★☆
() автор топика

ежели нормально знаешь С (управление памятью, методы реализации разных структур данных(односвязные, двусвязные списки, самопальные динамические массивы...) и более менее врубаешься как реализуются всяческие loop-модели(петли/цыклы) и callback'и (обратные вызовы), то всё и так станет понятно — тупо читай какую-нибудь гномовуюgtk-прогу одновременно заглядывая в документацию GTK

jeuta ★★★★
()

А вариант «сразу рвемся в бой, благослови нас гугль»?

Ну, то есть, сразу начинаем писать программу. А неясные вещи осмысливаем с помощью поисковика.

pathfinder ★★★★
()

Хрена с два, ибо они считают API Reference идеальной документацией.

PayableOnDeath
()
Ответ на: комментарий от pathfinder

Ну, то есть, сразу начинаем писать программу. А неясные вещи осмысливаем с помощью поисковика.

ну да, можно. Но тогда получается, мы методом тыка осваиваем только один тип задач. Медленно, неэффективно, а результат можно будет смело выкинуть ;)

Вот открываем мы новый main, ставим курсор в пустое место между фигурными скобочками — ну и что туда писать теперь?

по идее, для каждой типовой ситуации уже придуманы рекомендованные типовые решения. На типовые решения есть фреймворки и библиотеки. Фреймворки и библиотеки диктуют свои паттерны. Шаришь идеи, задачи, и их воплощение в «кирпичиках» — можешь собрать из этих кирпичиков дом.

Но вначале нужно иметь эти кирпичики, и знать как строить из них стены. В этом собственно и реквест.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от yoghurt

http://book.pdfchm.net/foundations-of-gtk-development-experts-voice-in-open-s...

спасибо, принято :)

там же обнаружил The Official Gnome 2 Developers Guide

http://book.pdfchm.net/the-official-gnome-2-developers-guide/9781593270308/

но оно старое шо ппц (2004й год)

stevejobs ★★★★☆
() автор топика

а описание GTK/gnome как технологии и платформы для быстрой разработки гуевых программ.

Фига се у тебя трава :). Быстро это на питоне/руби/etc, но никак не на C. Можешь сравнить примеры гуёвин на C и питоне.

Да, копай в сторону GTKBuilder

true_admin ★★★★★
()
Ответ на: комментарий от stevejobs

Вот открываем мы новый main, ставим курсор в пустое место между фигурными скобочками — ну и что туда писать теперь?

Тебе нужен только гугл и немного воображения.

по идее, для каждой типовой ситуации уже придуманы рекомендованные типовые решения. На типовые решения есть фреймворки и библиотеки. Фреймворки и библиотеки диктуют свои паттерны. Шаришь идеи, задачи, и их воплощение в «кирпичиках» — можешь собрать из этих кирпичиков дом.

До кирпичей, фреймворков и паттернов надо ещё созреть. Всю эту ересь читать опасно, если твой разум не окреп. А окрепнуть он может лишь в результате практики.

Если хочется что-то именно почитать, то может лучше сюда.

pathfinder ★★★★
()
Ответ на: комментарий от pathfinder

Тебе нужен только гугл и немного воображения.

stevejobs@localhost: todo add «купить отменной травы, завтра, active»

лучше сюда.

принято :)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от anonymous

> http://book.pdfchm.net

И как оттуда скачивать?


сейчас — никак. Его можно использовать как отличный поисковик по книжкам, которые уже есть в интернете в электронном виде. Копипастишь заголовок книжки в гуголь, и добавляешь «pdf download» или «chm download» - результат практически гарантирован, за исключением самых новых новинок, которых нигде кроме этого сайта еще нет.

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

stevejobs ★★★★☆
() автор топика

Дефолтная документация Как раз для таких тулкит и придуман

flareguner
()
Ответ на: комментарий от stevejobs

> хотелось бы именно си и способы работы Настоящих Гткшников в чистом первозданном виде

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

waker ★★★★★
()

>книжка в стиле «… для идиотов»

Не рановато тебе такие взрослые книжки читать?

Led ★★★☆☆
()

учил по gtk-demo

enep ★★★★★
()

Странно что никто не упомянул Vala, что может быть лучше для GTK? А может Mono/GTK#?

Или стоп... имеется ввиду не просто программа, а гвоздями прибитая к гному пришлепка? Чем это лучше программулек на vcl и win32 api?

I-Love-Microsoft ★★★★★
()

http://subscribe.ru/catalog/comp.soft.prog.gtk?pos=3
Тут пошагово разжевано.

http://habrahabr.ru/blogs/development/107403/
Тут пример создания приложения с использованием визуального редактора интерфейсов(Glade)

При установке Glade ставится devhelp, чтобы каждый раз в инет не лазить.

CrossFire ★★★★★
()

Всем советчикам больше спасибо ;)

Будем пробовать!

stevejobs ★★★★☆
() автор топика

Я основы брал с gtkdemo, «маны» на library.gnome.org беру.

Eddy_Em ☆☆☆☆☆
()

выбрал в свое время pygtkmvc. если нужен результат, то это оно

VladimirMalyk ★★★★★
()
Ответ на: комментарий от stevejobs

> прости, поделиться паролем не могу...

Да с книгами проблем нет, они много где есть. Просто раньше натыкался на этот сайт и все никак не мог найти эту чертову кнопку «скачать» :)

anonymous
()
Ответ на: комментарий от CrossFire

>http://subscribe.ru/catalog/comp.soft.prog.gtk?pos=3
Прикольно. Спасибо за ссылку. Постепенно собираю у себя все ссылки на полезную инфу про ГТК :)

Foundations of GTK+ development

Если кому-то очень хочется, могу прислать. Честно куплена. Эндрю Краузе поди уже отбил деньги, за четыре года. Так что не варез :)

В принципе книга уже местами устарела. Но если не считать исходников библиотеки, это пока лучшее что есть на тему. Хотя, от гтктуториала отличается разве что более подробными описаниями.

The Official Gnome 2 Developers Guide

А кто-нибудь покупал? Оно вообще сильно отличается от ГТК туториала?

petrosha ★★★★★
()
Ответ на: комментарий от stevejobs

Нормальный Гткшники на С не пишут. На нем пишут только разработчики библиотек ну или уже совсем основные програмы Гнома. Иначе не нужно, они рекомендуют использовать байндинги для прикладного софта. Так и задумывалось, если бы все было только для С, то GObject был бы не нужен.

vertexua ★★★★★
()
Ответ на: комментарий от petrosha

Книжка-то у вас, наверное, по GTK2 еще, да и не очень свежему? Я вот, почитывая список функций на library.gnome.org, частенько ловлю себя на том, что использую у себя deprecated функции, которые использовать не стоит. А вот не получается: в новых версиях библиотеки иногда вообще нет функций, обеспечивающих нужный функционал (к примеру, gdk_gc_set_function(gc, GDK_XOR); - cairo не позволяет рисовать с маской исключающего или).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от vertexua

Как раз в той программке из темы про нормали. При построении сечения изображения или выделения участка рамкой, я рисую рамку при помощи gdk_draw_line с функцией XOR. В результате подложку перерисовывать постоянно не нужно (что вызывало бы небольшие тормоза). А вот при рисовании с помощью cairo приходится перерисовывать подложку, чтобы стереть нарисованное ранее - при выводе графиков это не страшно (графики я с помощью cairo и рисую), а вот при выводе изображений получаются неприятные дергания и моргания.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ну вообще логично, хотя как то костыльно. Cairo вообще не моргает, что то у тебя там сильно не так. Хотя я бы наверное это сразу на OpenGL делал бы и лишь текстуры на Cairo. Ключ в том что в шедере можно делать любые манипуляции с чем угодно. В одной своей программе я timeline анимациию в шедер засунул. Тоесть по параметру t производилась интерполяции положения, размера, brighness и ко всему этому еще по лушим правилам picture flow делались reflection. Правда вместо Cairo был Java2D, но суть не менялась.

vertexua ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

на win32 api программы в большинстве своем качеством отличались на порядок высшим чем линуксовые «кроссплатформенные» поделки

anonymous
()
Ответ на: комментарий от anonymous

на win32 api программы в большинстве своем качеством отличались на порядок высшим чем линуксовые «кроссплатформенные» поделки

очень спорное заявление ввиду того что качество программ абсолютно не зависит от ОС либо наличия кроссплатформенности

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Eddy_Em

>Книжка-то у вас, наверное, по GTK2 еще, да и не очень свежему?
А новее никто ничего не написал. Я вот даже не нашел грамотного, развернутого описания чем ГТК3 отличается от скажем ГТК2 в версии 2.16 - его долгое время считали ЛТС вариантом :) Только по ченджлогам, довольно трудно выковыривать. Я на гтк не каждый день программирую.


petrosha ★★★★★
()
Ответ на: комментарий от Eddy_Em

Да это-то понятно. Просто ГТКшный референс был для меня всегда слишком лаконичным. Хотя, к этому привыкаешь.

Ну и доставляет конечно, что гтк3 реф.ман. до сих пор анстейбл :)
Гтк-туториал имеет версию 2.90.7... но в чем ее отличие от 2.24 не ясно...


petrosha ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.